christopherjwhite / org-toodledo

Emacs enhancement for syncing org-mode tasks with Toodledlo
83 stars 16 forks source link

Initial sync dies: "[ERROR] Call to contexts/add failed: A context with that name already exists, not retrying" #21

Closed alphapapa closed 10 years ago

alphapapa commented 11 years ago

emacs = 23.4 org-mode = 7.9.2

[05:03:32] [INFO] Starting org-toodledo-sync
[05:03:32] [INFO] org-toodledo buffer at latest version 2.10
[05:03:32] [INFO] Server has changes, asking for all modafter="0"
[05:03:34] [ERROR] Unsupported repeat string format: With Parent
[05:03:34] [ERROR] Unsupported repeat string format: With Parent
[05:03:34] [ERROR] Unsupported repeat string format: With Parent
[05:03:34] [ERROR] Unsupported repeat string format: With Parent
[05:03:34] [ERROR] Unsupported repeat string format: With Parent
[05:03:35] [ERROR] Unsupported repeat string format: Every Mon, Tue, Wed, Thu, Fri
[05:03:46] [ERROR] Unsupported repeat string format: Every Sun
[05:03:46] [INFO] Server has deletes, asking for all after="0"
[05:03:47] [ERROR] Call to contexts/add failed: A context with that name already exists, not retrying

This causes ToodledoLastSync to remain 0. I don't understand why this is happening. I'm afraid I don't know enough about elisp to figure out why it's trying to add a context that already exists.

I'm really hoping to use org-toodledo! I'm going to try it with emacs 23 just in case it makes a difference, but since I've seen reports of people using it with emacs 24, I doubt that's the problem.

Thanks for any help. Let me know how I can help debug it.

christopherjwhite commented 11 years ago

Ok -- it looks like there are 2 things going on:

  1. "Unsupported repeat string format..."

The org-toodledo parser is not recognizing the more advanced variations. Right now it only supports things like "Every X days".
I'll have to play with it to see how hard it is to support the additional variations.

  1. "Call to contexts/add failed"

Contexts for a task are derived from org-mode task tags of the form ":@Work:". This would translate to a context of "Work". Org-toodledo attempts to create contexts on the server as needed.

Can you tell me what is the list of contexts that you use in your todo file?

Thanks ...cj

On 8/12/13 6:13 AM, alphapapa wrote:

emacs = 23.4 org-mode = 7.9.2

|[05:03:32] [INFO] Starting org-toodledo-sync [05:03:32] [INFO] org-toodledo buffer at latest version 2.10 [05:03:32] [INFO] Server has changes, asking for all modafter="0" [05:03:34] [ERROR] Unsupported repeat string format: With Parent [05:03:34] [ERROR] Unsupported repeat string format: With Parent [05:03:34] [ERROR] Unsupported repeat string format: With Parent [05:03:34] [ERROR] Unsupported repeat string format: With Parent [05:03:34] [ERROR] Unsupported repeat string format: With Parent [05:03:35] [ERROR] Unsupported repeat string format: Every Mon, Tue, Wed, Thu, Fri [05:03:46] [ERROR] Unsupported repeat string format: Every Sun [05:03:46] [INFO] Server has deletes, asking for all after="0" [05:03:47] [ERROR] Call to contexts/add failed: A context with that name already exists, not retrying|

This causes |ToodledoLastSync| to remain |0|. I don't understand why this is happening. I'm afraid I don't know enough about elisp to figure out why it's trying to add a context that already exists.

I'm really hoping to use org-toodledo! I'm going to try it with emacs 23 just in case it makes a difference, but since I've seen reports of people using it with emacs 24, I doubt that's the problem.

Thanks for any help. Let me know how I can help debug it.

— Reply to this email directly or view it on GitHub https://github.com/christopherjwhite/org-toodledo/issues/21.

alphapapa commented 11 years ago

Right now the only contexts in this org file are @computer and @phone. Both of those are already in my Toodledo account, although they are @Computer and @Phone there. Could the capitalization difference be the issue? ...

I changed the contexts in my org file to match the capitalization of the contexts on my Toodledo account, and then I re-ran org-toodledo-initialize. It seems to finish now, according to the debug log, except when it gets to the end, it fails with an error. I think it's in url-http.el:

Debug enabled - debug messages are sent to the buffer *Org-toodledo-log*
Computing completion candidates... [2 times]
Starting org-toodledo-sync
org-toodledo buffer at latest version 2.10
Contacting host: api.toodledo.com:443
Contacting host: api.toodledo.com:80 [2 times]
Server has changes, asking for all modafter="0"
Contacting host: api.toodledo.com:80
Unsupported repeat string format: Every Mon, Tue, Wed, Thu, Fri
Contacting host: api.toodledo.com:80
Unsupported repeat string format: Every Sun
Server has deletes, asking for all after="0"
Contacting host: api.toodledo.com:80 [2 times]
byte-code: writing to process: bad file descriptor, api.toodledo.com

When I first tried to set this up last night, I used the built-in url-http from the Ubuntu package. Then I tried patching it with the two patches from here; they didn't apply cleanly, but it seemed to still function. When I had the patched url-http.el loaded, it said url-http instead of byte-code on the last line. I removed the patched url-http.el from my load-path and restarted emacs, but it still has the same bad file descriptor error, just as byte-code instead.

It's so close to working! I can see from the debug log that it's processed all the tasks on my account, but it just won't finally finish, so it never writes the last sync time to the file.

Oh, anyway: I think this context bug is a matter of case-sensitivity in emacs and case-insensitivity on Toodledo.

Do you want me to file a separate bug for this file descriptor problem?

Thanks a lot for your help. I can't wait to get this working.

christopherjwhite commented 11 years ago

On 8/13/13 1:02 AM, alphapapa wrote:

Right now the only contexts in this org file are @computer https://github.com/computer and @phone https://github.com/phone. Both of those are already in my Toodledo account, although they are @Computer https://github.com/Computer and @Phone https://github.com/Phone there. Could the capitalization difference be the issue? ...

Oh, anyway: I think this context bug is a matter of case-sensitivity in emacs and case-insensitivity on Toodledo.

Aaah, yes, that makes sense. That shouldn't be hard to catch!

I changed the contexts in my org file to match the capitalization of the contexts on my Toodledo account, and then I re-ran org-toodledo-initialize. It seems to finish now, according to the debug log, except when it gets to the end, it fails with an error. I think it's in url-http.el:

Debug enabled - debug messages are sent to the buffer Org-toodledo-log ... byte-code: writing to process: bad file descriptor, api.toodledo.com

Do you want me to file a separate bug for this file descriptor problem? Yes .. please file a separate issue. Also, can you also post the relevant lines from Org-toodledo-log? This will help isolate which final toodledo command is causing the issue.

It's a bit strange, because if its a problem with url-http.el, it usually shows up much earlier during task synchronization.

Thanks! ...cj