Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The "Automatically Generate A Birthday Calendar" feature doesn't work. #10690

Closed
WNYmathGuy opened this issue Aug 15, 2018 · 22 comments
Closed
Labels
0. Needs triage Pending check for reproducibility or if it fits our roadmap bug needs info

Comments

@WNYmathGuy
Copy link

This was moved from nextcloud/cdav-library#5

Steps to reproduce

  1. Check the box for "Automatically generate a birthday calendar"
  2. Wait a long time, like hours.
  3. Look for Birthday's on a calendar, or a new calendar called Birthday's, but don't find one.

Expected behavior

A new calendar for a user should appear with birthdays that are stored in the contact's list.

Actual behavior

Nothing

Server configuration detail

Operating system: Linux 4.4.0-127-generic #153-Ubuntu SMP Sat May 19 10:58:46 UTC 2018 x86_64

Webserver: Apache/2.4.18 (cgi-fcgi)

Database: mysql 10.0.34

PHP version: 7.0.30-0ubuntu0.16.04.1
Modules loaded: Core, date, libxml, openssl, pcre, zlib, filter, hash, pcntl, Reflection, SPL, session, standard, cgi-fcgi, mysqlnd, PDO, xml, apcu, bz2, calendar, ctype, curl, dom, mbstring, fileinfo, ftp, gd, gettext, gmp, iconv, igbinary, imagick, imap, intl, json, ldap, exif, mcrypt, mysqli, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, Phar, posix, pspell, readline, redis, shmop, SimpleXML, soap, sockets, sqlite3, sysvmsg, sysvsem, sysvshm, tokenizer, wddx, xmlreader, xmlrpc, xmlwriter, xsl, zip, Zend OPcache

Nextcloud version: 13.0.2 - 13.0.2.1

Updated from an older Nextcloud/ownCloud or fresh install: Upgraded

Where did you install Nextcloud from: NextCloud website for Ubuntu instructions

Signing status

Array

List of activated apps
Enabled:
 - activity: 2.6.1
 - admin_notifications: 1.0.1
 - announcementcenter: 3.2.1
 - apporder: 0.4.1
 - audioplayer: 2.3.0
 - bookmarks: 0.11.0
 - bruteforcesettings: 1.0.3
 - calendar: 1.6.1
 - checksum: 0.4.0
 - circles: 0.13.6
 - comments: 1.3.0
 - contacts: 2.1.5
 - data_request: 1.0.0
 - dav: 1.4.6
 - deck: 0.3.1
 - drawio: 0.8.9
 - drop_account: 0.0.11
 - external: 3.0.3
 - federatedfilesharing: 1.3.1
 - federation: 1.3.0
 - files: 1.8.0
 - files_antivirus: 1.2.0
 - files_downloadactivity: 1.2.0
 - files_pdfviewer: 1.2.1
 - files_retention: 1.2.0
 - files_sharing: 1.5.0
 - files_texteditor: 2.5.1
 - files_trashbin: 1.3.0
 - files_versions: 1.6.0
 - files_videoplayer: 1.2.0
 - firstrunwizard: 2.2.1
 - flowupload: 0.0.7
 - gallery: 18.0.0
 - gpxedit: 0.0.8
 - gpxmotion: 0.0.6
 - gpxpod: 2.2.2
 - groupfolders: 1.2.0
 - issuetemplate: 0.3.0
 - keeporsweep: 0.1.4
 - logreader: 2.0.0
 - lookup_server_connector: 1.1.0
 - metadata: 0.6.0
 - news: 12.0.1
 - nextcloud_announcements: 1.2.0
 - notes: 2.3.2
 - notifications: 2.1.2
 - oauth2: 1.1.0
 - ocsms: 1.12.7
 - password_policy: 1.3.0
 - phonetrack: 0.2.7
 - polls: 0.8.1
 - provisioning_api: 1.3.0
 - quota_warning: 1.2.0
 - radio: 0.6.1
 - rainloop: 5.1.0
 - ransomware_protection: 1.1.0
 - richdocuments: 2.0.8
 - serverinfo: 1.3.0
 - sharebymail: 1.3.0
 - socialsharing_diaspora: 1.0.2
 - socialsharing_email: 1.0.3
 - socialsharing_facebook: 1.0.2
 - socialsharing_googleplus: 1.0.2
 - socialsharing_twitter: 1.0.2
 - spreed: 3.2.1
 - survey_client: 1.1.0
 - systemtags: 1.3.0
 - tasks: 0.9.6
 - telephoneprovider: 1.0.1
 - theming: 1.4.5
 - twofactor_backupcodes: 1.2.3
 - updatenotification: 1.3.0
 - weather: 1.5.1
 - workflowengine: 1.3.0
Disabled:
 - admin_audit
 - encryption
 - files_external
 - user_external
 - user_ldap

Configuration (config/config.php)
{
    "instanceid": "***REMOVED SENSITIVE VALUE***",
    "passwordsalt": "***REMOVED SENSITIVE VALUE***",
    "secret": "***REMOVED SENSITIVE VALUE***",
    "trusted_domains": [
        "cloud.myexample.com"
    ],
    "datadirectory": "***REMOVED SENSITIVE VALUE***",
    "dbtype": "mysql",
    "version": "13.0.2.1",
    "dbname": "***REMOVED SENSITIVE VALUE***",
    "dbhost": "***REMOVED SENSITIVE VALUE***",
    "dbport": "",
    "dbtableprefix": "oc_",
    "mysql.utf8mb4": true,
    "dbuser": "***REMOVED SENSITIVE VALUE***",
    "dbpassword": "***REMOVED SENSITIVE VALUE***",
    "installed": true,
    "mail_from_address": "***REMOVED SENSITIVE VALUE***",
    "mail_smtpmode": "smtp",
    "mail_smtpauthtype": "LOGIN",
    "mail_domain": "***REMOVED SENSITIVE VALUE***",
    "mail_smtphost": "***REMOVED SENSITIVE VALUE***",
    "mail_smtpport": "587",
    "mail_smtpauth": 1,
    "mail_smtpname": "***REMOVED SENSITIVE VALUE***",
    "mail_smtppassword": "***REMOVED SENSITIVE VALUE***",
    "maintenance": false,
    "memcache.local": "\\OC\\Memcache\\APCu",
    "theme": "",
    "updater.secret": "***REMOVED SENSITIVE VALUE***",
    "loglevel": 0,
    "default_language": "en",
    "enable_previews": true,
    "preview_max_x": 2048,
    "preview_max_y": 2048,
    "preview_max_scale_factor": 10,
    "preview_max_filesize_image": 50,
    "preview_libreoffice_path": "\/usr\/bin\/libreoffice",
    "preview_office_cl_parameters": " --headless --nologo --nofirststartwizard --invisible --norestore --convert-to pdf --outdir ",
    "enabledPreviewProviders": [
        "OC\\Preview\\PNG",
        "OC\\Preview\\JPEG",
        "OC\\Preview\\GIF",
        "OC\\Preview\\BMP",
        "OC\\Preview\\XBitmap",
        "OC\\Preview\\SVG",
        "OC\\Preview\\TIFF",
        "OC\\Preview\\MP3",
        "OC\\Preview\\TXT",
        "OC\\Preview\\Font",
        "OC\\Preview\\MarkDown",
        "OC\\Preview\\Movie",
        "OC\\Preview\\MSOffice2003",
        "OC\\Preview\\MSOffice2007",
        "OC\\Preview\\MSOfficeDoc",
        "OC\\Preview\\OpenDocument",
        "OC\\Preview\\PDF",
        "OC\\Preview\\Postscript",
        "OC\\Preview\\StarOffice"
    ],
    "tempdirectory": "\/home\/webserverowner\/domains\/cloud.myexample.com\/tmp\/nextcloudtemp",
    "overwrite.cli.url": "https:\/\/cloud.myexample.com"
}

Client configuration

Browser: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0

Operating system: Ubuntu 18.04 workstation

Logs

Nextcloud log

screenshot_from_2018-06-01_22-26-05

nextcloud.log

@nextcloud-bot
Copy link
Member

GitMate.io thinks possibly related issues are #410 (Birthday calendar not generated for shared contacts), #3003 (Disable birthday contacts calendar generation for user), #9605 (CalDav Issue, Calendar and Tasks not working), #9696 (The Phone Track app hangs it's progress icon indefinitely), and #10319 (Shared Group Folder trouble | double display of files and bypass "Deleted files" bin on delete).

@georgehrke
Copy link
Member

What "Background jobs" option did you select in the admin preferences?
When does it say the last background job was executed?

@WNYmathGuy
Copy link
Author

@georgehrke This question was addressed on nextcloud/cdav-library#5 as the closer closed it, so I went to the trouble of checking my cron jobs. I was originally set to Cron. I don't know what happened since I first installed Nextcloud about a year ago, but I thought it was running. I discovered before posting here that it was not. I took the time before posting to diagnose that issue of mine and then to try a variety of things to see if the birthdays would update. They didn't. My cron job somehow through the Virtualmin server management interface added a % between /usr/bin/php and -f /home/support/domains/cloud.ruppssites.com/public_html/nextcloud .... I edited the cron file directly to fix that and now the last run is always less than 15 minutes; 4 at the time I started writing this.

First, I tried all permutations of checking and unchecking the "Automatically generate a birthday calendar" and running the Webcron manually and editing a birthday entry in the Nextcloud Contacts web interface. After diagnosing the % error in my cron job, I tried similar permutations with it set to Cron including forcing it to run again on the server.

I am not sharing my contacts with any other user at this time, and I do use all the standard Android apps to import them to my portables. I also have the Nextcloud Rainloop module pulling the contacts in. All other things sync correctly. All Birthday's are coded appropriately in Nextcloud Contacts.

@WNYmathGuy
Copy link
Author

Still no birthday's in Nextcloud 14.

@WNYmathGuy
Copy link
Author

I'm upgraded to NC 15 now and I finally took the time to look at the data. (An aside that bugs me a bit is the Anniversary entry for a oc_cards_properties doesn't seem to exist. Why is that something only getting stored in the oc_cards.carddata "BLOB" entry? Anniversaries are something important to not forget because of unwritten cultural norm's, and they're maybe more important than BDAY's.)

I discovered that my account was the only user that didn't have the contact_birthdays entry in the oc_calendars table. I manually added a record for by using phpMyAdmin to copy a similar record and alter it to my login ID it hoping it would just start working, but it didn't. I tried editing a bunch of birthdays and then changing them back before the cron job ran, then checking after it ran but they didn't appear. Is their a PHP script I can call to rebuild the calendar entries that should have been there already?

I noticed that I can't find that checkbox in the admin settings pages to turn on or off the "Automatically Generate A Birthday Calendar". Does that mean I have somethingelse loused up or did this version take away the ability to turn it on and off?

@leezu
Copy link

leezu commented Mar 27, 2019

@WNYmathGuy I can confirm the checkbox is present for me on NC15. Did you check https://owncloud.test/settings/admin/groupware

@WNYmathGuy
Copy link
Author

@WNYmathGuy I can confirm the checkbox is present for me on NC15. Did you check https://owncloud.test/settings/admin/groupware

Sorry, @leezu I checked the day you wrote and it was there again. I still have no content in the Contacts Birthdays calendar.

@stale
Copy link

stale bot commented Jun 5, 2019

This issue has been automatically marked as stale because it has not had recent activity and it seems to be missing some essential informations. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the stale Ticket or PR with no recent activity label Jun 5, 2019
@WNYmathGuy
Copy link
Author

This issue has been automatically marked as stale because it has not had recent activity and it seems to be missing some essential informations. It will be closed if no further activity occurs. Thank you for your contributions.

Thanks, @Stale bot, I've never gotten it to work. I have tried it with another account and the birthday calendar entry system worked fine. It's just my account it doesn't work for. The problem I have is, not knowing how to reinstantiate a calendar for an account where it was damaged somehow. At this point I can't delete and recreate my account, so what I really need to know is what series of events go into the set-up of the birthday calendar for a user when they first make an account.

@stale stale bot removed the stale Ticket or PR with no recent activity label Jun 6, 2019
@skjnldsv skjnldsv added the 0. Needs triage Pending check for reproducibility or if it fits our roadmap label Jun 12, 2019
@WNYmathGuy
Copy link
Author

I think if somebody could point me to a way to properly rebuild the birthday's calendar that is automatically made for user accounts, and the commands to cause it's natural population, we could close this ticket.

Just to recap, When I initially imported contacts from a Google Takeout file, I must have deleted the birthday's calendar because I didn't make it and didn't know what was going on. Since then nothing I have done to make it work again has been successful. However, the system does work properly. I know this as a fact because when I log in as another user through Admin Impersonate User, their birthday calendar functions as advertised when contacts are created and updated.

I've been thinking about exporting my account, deleting my account and then remaking it and importing the export, but there is a risk with that. My account is dialed into almost all features available on the instance. Their's lots of complicated shared files. Some were uploaded as Admin, others uploaded as my account. Who knows what will go wrong? I think if I just had a way to execute the code that made it in the first place, all would be well.

@jangop
Copy link

jangop commented Jul 26, 2019

I, too, cannot seem to get a birthday calendar created since I removed it at some point.

@kesselb
Copy link
Contributor

kesselb commented Aug 13, 2019

I think if somebody could point me to a way to properly rebuild the birthday's calendar that is automatically made for user accounts, and the commands to cause it's natural population, we could close this ticket.

Is there a chance that you upgrade to Nextcloud 16 in the next time? #11832 added a repair step to regenerate the birthday calendar during upgrade.

@jangop
Copy link

jangop commented Aug 13, 2019

I am on 16.0.3 and the birthday calendar does not regenerate.

@kesselb
Copy link
Contributor

kesselb commented Aug 13, 2019

$this->config->setUserValue($userId, 'dav', 'generateBirthdayCalendar', 'no');

On birthday calendar delete generateBirthdayCalendar is set to "no" for the current user. Could you look into the oc_preferences (oc_ might be something else) table and look for rows with configkey = generateBirthdayCalendar. Is there a row with your userid and the configvalue = no? If so change the configvalue to yes. The next step would be to queue the background job for the birthday calendar generation again. Go to the admin section, disable the birthday calendar and enable it again.

@WNYmathGuy
Copy link
Author

Okay @kesselb I also am in NC 16.0.3, and see I can upgrade to 16.0.4, but I wanted to try your method prior to the upgrade.

I found the row (my ID, dav, generateBirthdayCalendar, no) and changed it to (my ID, dav, generateBirthdayCalendar, yes).

It took a while to find the checkbox in Admin area cause I forgot it was in the Groupware section. I un-checked then later went back in and re-checked it.

After the chron job ran its course, I got that "Contact birthdays" back in my subscription section again and the birthdays, anniversaries, and date of death entries all appeared.

I can't thank you enough. This has been bugging me for so long! My wife has been complaining about how we are forgetting peoples birthdays ever since I switched out of Google. I was so dumb to have deleted that calendar, but I thought it was weird that something I didn't make was there, so into the NULL it went. It's synched to my mobile, and all is good now!

@kesselb
Copy link
Contributor

kesselb commented Aug 16, 2019

Great news!

If someone else is running into this issue. There is another way by running a occ command: #6884 (comment)

php occ dav:sync-birthday-calendar $USER_NAME
php occ maintenance:repair

@jangop
Copy link

jangop commented Aug 18, 2019

$this->config->setUserValue($userId, 'dav', 'generateBirthdayCalendar', 'no');

On birthday calendar delete generateBirthdayCalendar is set to "no" for the current user. Could you look into the oc_preferences (oc_ might be something else) table and look for rows with configkey = generateBirthdayCalendar. Is there a row with your userid and the configvalue = no? If so change the configvalue to yes. The next step would be to queue the background job for the birthday calendar generation again. Go to the admin section, disable the birthday calendar and enable it again.

At least on my system, said entry had the value no. I wonder why. 🤔

@kesselb
Copy link
Contributor

kesselb commented Aug 18, 2019

I, too, cannot seem to get a birthday calendar created since I removed it at some point.

The value is no if you deleted the calendar before. A new calendar with the same name does not change the value to yes.

@jangop
Copy link

jangop commented Aug 18, 2019

I, too, cannot seem to get a birthday calendar created since I removed it at some point.

The value is no if you deleted the calendar before. A new calendar with the same name does not change the value to yes.

Shouldn't the setting “Automatically generate a birthday calendar” under settings/admin/groupware set this to yes?

@georgehrke
Copy link
Member

Shouldn't the setting “Automatically generate a birthday calendar” under settings/admin/groupware set this to yes?

No, that's a system wide setting affecting all users. There needs to be an option in the calendar to set it to yes. Ticket: nextcloud/calendar#277

@kesselb

This comment has been minimized.

@jangop
Copy link

jangop commented Aug 18, 2019

Alright, thank you for the clarification. I suppose we could come up with a clearer description of this setting, in addition to nextcloud/calendar#277.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
0. Needs triage Pending check for reproducibility or if it fits our roadmap bug needs info
Projects
None yet
Development

No branches or pull requests

7 participants