[jira] [Commented] (ZOOKEEPER-761) Remove *synchronous* calls from the *single-threaded* C clieant API, since they are documented not to work
[ https://issues.apache.org/jira/browse/ZOOKEEPER-761?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16413265#comment-16413265 ] Michael Han commented on ZOOKEEPER-761: --- The patch was merged in 3.5 (and released as part of 3.5.3-beta on March/2017) as well as in master. The remaining issue is to decide whether or not to get the patch in 3.4 branch, but that's not a blocker for any of the future 3.5/3.6 releases, so resolve the JIRA. > Remove *synchronous* calls from the *single-threaded* C clieant API, since > they are documented not to work > -- > > Key: ZOOKEEPER-761 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-761 > Project: ZooKeeper > Issue Type: Improvement > Components: c client >Affects Versions: 3.1.1, 3.2.2 > Environment: RHEL 4u8 (Linux). The issue is not OS-specific though. >Reporter: Jozef Hatala >Assignee: Benjamin Reed >Priority: Blocker > Fix For: 3.5.3, 3.6.0 > > Attachments: fix-sync-apis-in-st-adaptor.patch, > fix-sync-apis-in-st-adaptor.v2.patch > > > Since the synchronous calls are > [known|http://hadoop.apache.org/zookeeper/docs/current/zookeeperProgrammers.html#Using+the+C+Client] > to be unimplemented in the single threaded version of the client library > libzookeeper_st.so, I believe that it would be helpful towards users of the > library if that information was also obvious from the header file. > Anecdotally more than one of us here made the mistake of starting by using > the synchronous calls with the single-threaded library, and we found > ourselves debugging it. An early warning would have been greatly appreciated. > 1. Could you please add warnings to the doxygen blocks of all synchronous > calls saying that they are not available in the single-threaded API. This > cannot be safely done with {{#ifdef THREADED}}, obviously, because the same > header file is included whichever client library implementation one is > compiling for. > 2. Could you please bracket the implementation of all synchronous calls in > zookeeper.c with {{#ifdef THREADED}} and {{#endif}}, so that those symbols > are not present in libzookeeper_st.so? -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (ZOOKEEPER-761) Remove *synchronous* calls from the *single-threaded* C clieant API, since they are documented not to work
[ https://issues.apache.org/jira/browse/ZOOKEEPER-761?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15762465#comment-15762465 ] Flavio Junqueira commented on ZOOKEEPER-761: [~breed] do you want this to go to the 3.4 branch as well? The fix version is set to 3.5.3 and 3.6.0, but I want to confirm whether this is sufficient or not. It might be better to have it in 3.4 as well. > Remove *synchronous* calls from the *single-threaded* C clieant API, since > they are documented not to work > -- > > Key: ZOOKEEPER-761 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-761 > Project: ZooKeeper > Issue Type: Improvement > Components: c client >Affects Versions: 3.1.1, 3.2.2 > Environment: RHEL 4u8 (Linux). The issue is not OS-specific though. >Reporter: Jozef Hatala >Assignee: Benjamin Reed >Priority: Blocker > Fix For: 3.5.3, 3.6.0 > > Attachments: fix-sync-apis-in-st-adaptor.patch, > fix-sync-apis-in-st-adaptor.v2.patch > > > Since the synchronous calls are > [known|http://hadoop.apache.org/zookeeper/docs/current/zookeeperProgrammers.html#Using+the+C+Client] > to be unimplemented in the single threaded version of the client library > libzookeeper_st.so, I believe that it would be helpful towards users of the > library if that information was also obvious from the header file. > Anecdotally more than one of us here made the mistake of starting by using > the synchronous calls with the single-threaded library, and we found > ourselves debugging it. An early warning would have been greatly appreciated. > 1. Could you please add warnings to the doxygen blocks of all synchronous > calls saying that they are not available in the single-threaded API. This > cannot be safely done with {{#ifdef THREADED}}, obviously, because the same > header file is included whichever client library implementation one is > compiling for. > 2. Could you please bracket the implementation of all synchronous calls in > zookeeper.c with {{#ifdef THREADED}} and {{#endif}}, so that those symbols > are not present in libzookeeper_st.so? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (ZOOKEEPER-761) Remove *synchronous* calls from the *single-threaded* C clieant API, since they are documented not to work
[ https://issues.apache.org/jira/browse/ZOOKEEPER-761?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15754058#comment-15754058 ] Hudson commented on ZOOKEEPER-761: -- FAILURE: Integrated in Jenkins build ZooKeeper-trunk #3195 (See [https://builds.apache.org/job/ZooKeeper-trunk/3195/]) ZOOKEEPER-761: Remove *synchronous* calls from the *single-threaded* C (fpj: rev c0868332a76cb6d0fa120058dc6cf7c55b0d0ec0) * (edit) src/c/tests/TestClient.cc * (edit) src/c/tests/TestReadOnlyClient.cc * (edit) src/c/src/zk_adaptor.h * (edit) src/c/src/zookeeper.c * (edit) src/c/include/zookeeper.h * (edit) src/c/src/st_adaptor.c * (edit) src/c/tests/TestReconfigServer.cc * (edit) src/c/src/cli.c * (edit) src/c/tests/TestMulti.cc > Remove *synchronous* calls from the *single-threaded* C clieant API, since > they are documented not to work > -- > > Key: ZOOKEEPER-761 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-761 > Project: ZooKeeper > Issue Type: Improvement > Components: c client >Affects Versions: 3.1.1, 3.2.2 > Environment: RHEL 4u8 (Linux). The issue is not OS-specific though. >Reporter: Jozef Hatala >Assignee: Benjamin Reed >Priority: Blocker > Fix For: 3.5.3, 3.6.0 > > Attachments: fix-sync-apis-in-st-adaptor.patch, > fix-sync-apis-in-st-adaptor.v2.patch > > > Since the synchronous calls are > [known|http://hadoop.apache.org/zookeeper/docs/current/zookeeperProgrammers.html#Using+the+C+Client] > to be unimplemented in the single threaded version of the client library > libzookeeper_st.so, I believe that it would be helpful towards users of the > library if that information was also obvious from the header file. > Anecdotally more than one of us here made the mistake of starting by using > the synchronous calls with the single-threaded library, and we found > ourselves debugging it. An early warning would have been greatly appreciated. > 1. Could you please add warnings to the doxygen blocks of all synchronous > calls saying that they are not available in the single-threaded API. This > cannot be safely done with {{#ifdef THREADED}}, obviously, because the same > header file is included whichever client library implementation one is > compiling for. > 2. Could you please bracket the implementation of all synchronous calls in > zookeeper.c with {{#ifdef THREADED}} and {{#endif}}, so that those symbols > are not present in libzookeeper_st.so? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (ZOOKEEPER-761) Remove *synchronous* calls from the *single-threaded* C clieant API, since they are documented not to work
[ https://issues.apache.org/jira/browse/ZOOKEEPER-761?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15752784#comment-15752784 ] ASF GitHub Bot commented on ZOOKEEPER-761: -- Github user breed commented on a diff in the pull request: https://github.com/apache/zookeeper/pull/90#discussion_r92719995 --- Diff: src/c/tests/TestClient.cc --- @@ -47,6 +47,10 @@ struct buff_struct_2 { char *buffer; }; +// TODO(br33d): the vast majority of this test is not usable with single threaded. --- End diff -- it's more a matter of implementing the tests than refactoring :) > Remove *synchronous* calls from the *single-threaded* C clieant API, since > they are documented not to work > -- > > Key: ZOOKEEPER-761 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-761 > Project: ZooKeeper > Issue Type: Improvement > Components: c client >Affects Versions: 3.1.1, 3.2.2 > Environment: RHEL 4u8 (Linux). The issue is not OS-specific though. >Reporter: Jozef Hatala >Assignee: Benjamin Reed >Priority: Blocker > Fix For: 3.5.3, 3.6.0 > > Attachments: fix-sync-apis-in-st-adaptor.patch, > fix-sync-apis-in-st-adaptor.v2.patch > > > Since the synchronous calls are > [known|http://hadoop.apache.org/zookeeper/docs/current/zookeeperProgrammers.html#Using+the+C+Client] > to be unimplemented in the single threaded version of the client library > libzookeeper_st.so, I believe that it would be helpful towards users of the > library if that information was also obvious from the header file. > Anecdotally more than one of us here made the mistake of starting by using > the synchronous calls with the single-threaded library, and we found > ourselves debugging it. An early warning would have been greatly appreciated. > 1. Could you please add warnings to the doxygen blocks of all synchronous > calls saying that they are not available in the single-threaded API. This > cannot be safely done with {{#ifdef THREADED}}, obviously, because the same > header file is included whichever client library implementation one is > compiling for. > 2. Could you please bracket the implementation of all synchronous calls in > zookeeper.c with {{#ifdef THREADED}} and {{#endif}}, so that those symbols > are not present in libzookeeper_st.so? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (ZOOKEEPER-761) Remove *synchronous* calls from the *single-threaded* C clieant API, since they are documented not to work
[ https://issues.apache.org/jira/browse/ZOOKEEPER-761?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15735934#comment-15735934 ] ASF GitHub Bot commented on ZOOKEEPER-761: -- Github user fpj commented on the issue: https://github.com/apache/zookeeper/pull/90 It sounds like there is a conflict in `TestReconfigServer`, could you resolve it, please @breed ? > Remove *synchronous* calls from the *single-threaded* C clieant API, since > they are documented not to work > -- > > Key: ZOOKEEPER-761 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-761 > Project: ZooKeeper > Issue Type: Improvement > Components: c client >Affects Versions: 3.1.1, 3.2.2 > Environment: RHEL 4u8 (Linux). The issue is not OS-specific though. >Reporter: Jozef Hatala >Assignee: Benjamin Reed >Priority: Minor > Fix For: 3.5.3, 3.6.0 > > Attachments: fix-sync-apis-in-st-adaptor.patch, > fix-sync-apis-in-st-adaptor.v2.patch > > > Since the synchronous calls are > [known|http://hadoop.apache.org/zookeeper/docs/current/zookeeperProgrammers.html#Using+the+C+Client] > to be unimplemented in the single threaded version of the client library > libzookeeper_st.so, I believe that it would be helpful towards users of the > library if that information was also obvious from the header file. > Anecdotally more than one of us here made the mistake of starting by using > the synchronous calls with the single-threaded library, and we found > ourselves debugging it. An early warning would have been greatly appreciated. > 1. Could you please add warnings to the doxygen blocks of all synchronous > calls saying that they are not available in the single-threaded API. This > cannot be safely done with {{#ifdef THREADED}}, obviously, because the same > header file is included whichever client library implementation one is > compiling for. > 2. Could you please bracket the implementation of all synchronous calls in > zookeeper.c with {{#ifdef THREADED}} and {{#endif}}, so that those symbols > are not present in libzookeeper_st.so? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (ZOOKEEPER-761) Remove *synchronous* calls from the *single-threaded* C clieant API, since they are documented not to work
[ https://issues.apache.org/jira/browse/ZOOKEEPER-761?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15675456#comment-15675456 ] Flavio Junqueira commented on ZOOKEEPER-761: [~breed] do we need the fix version to be 3.4.10 as well? the fix version currently targets only the 3.5 and master branches. > Remove *synchronous* calls from the *single-threaded* C clieant API, since > they are documented not to work > -- > > Key: ZOOKEEPER-761 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-761 > Project: ZooKeeper > Issue Type: Improvement > Components: c client >Affects Versions: 3.1.1, 3.2.2 > Environment: RHEL 4u8 (Linux). The issue is not OS-specific though. >Reporter: Jozef Hatala >Assignee: Benjamin Reed >Priority: Minor > Fix For: 3.5.3, 3.6.0 > > Attachments: fix-sync-apis-in-st-adaptor.patch, > fix-sync-apis-in-st-adaptor.v2.patch > > > Since the synchronous calls are > [known|http://hadoop.apache.org/zookeeper/docs/current/zookeeperProgrammers.html#Using+the+C+Client] > to be unimplemented in the single threaded version of the client library > libzookeeper_st.so, I believe that it would be helpful towards users of the > library if that information was also obvious from the header file. > Anecdotally more than one of us here made the mistake of starting by using > the synchronous calls with the single-threaded library, and we found > ourselves debugging it. An early warning would have been greatly appreciated. > 1. Could you please add warnings to the doxygen blocks of all synchronous > calls saying that they are not available in the single-threaded API. This > cannot be safely done with {{#ifdef THREADED}}, obviously, because the same > header file is included whichever client library implementation one is > compiling for. > 2. Could you please bracket the implementation of all synchronous calls in > zookeeper.c with {{#ifdef THREADED}} and {{#endif}}, so that those symbols > are not present in libzookeeper_st.so? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (ZOOKEEPER-761) Remove *synchronous* calls from the *single-threaded* C clieant API, since they are documented not to work
[ https://issues.apache.org/jira/browse/ZOOKEEPER-761?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15675454#comment-15675454 ] ASF GitHub Bot commented on ZOOKEEPER-761: -- Github user fpj commented on the issue: https://github.com/apache/zookeeper/pull/90 It looks good, I just left a comment about creating a jira before we forget. Could you do it before we close this issue, please @breed ? > Remove *synchronous* calls from the *single-threaded* C clieant API, since > they are documented not to work > -- > > Key: ZOOKEEPER-761 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-761 > Project: ZooKeeper > Issue Type: Improvement > Components: c client >Affects Versions: 3.1.1, 3.2.2 > Environment: RHEL 4u8 (Linux). The issue is not OS-specific though. >Reporter: Jozef Hatala >Assignee: Benjamin Reed >Priority: Minor > Fix For: 3.5.3, 3.6.0 > > Attachments: fix-sync-apis-in-st-adaptor.patch, > fix-sync-apis-in-st-adaptor.v2.patch > > > Since the synchronous calls are > [known|http://hadoop.apache.org/zookeeper/docs/current/zookeeperProgrammers.html#Using+the+C+Client] > to be unimplemented in the single threaded version of the client library > libzookeeper_st.so, I believe that it would be helpful towards users of the > library if that information was also obvious from the header file. > Anecdotally more than one of us here made the mistake of starting by using > the synchronous calls with the single-threaded library, and we found > ourselves debugging it. An early warning would have been greatly appreciated. > 1. Could you please add warnings to the doxygen blocks of all synchronous > calls saying that they are not available in the single-threaded API. This > cannot be safely done with {{#ifdef THREADED}}, obviously, because the same > header file is included whichever client library implementation one is > compiling for. > 2. Could you please bracket the implementation of all synchronous calls in > zookeeper.c with {{#ifdef THREADED}} and {{#endif}}, so that those symbols > are not present in libzookeeper_st.so? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (ZOOKEEPER-761) Remove *synchronous* calls from the *single-threaded* C clieant API, since they are documented not to work
[ https://issues.apache.org/jira/browse/ZOOKEEPER-761?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15669747#comment-15669747 ] ASF GitHub Bot commented on ZOOKEEPER-761: -- Github user rgs1 commented on a diff in the pull request: https://github.com/apache/zookeeper/pull/90#discussion_r88183747 --- Diff: src/c/src/zookeeper.c --- @@ -4052,6 +3958,76 @@ int zoo_amulti(zhandle_t *zh, int count, const zoo_op_t *ops, return (rc < 0) ? ZMARSHALLINGERROR : ZOK; } + +int zoo_aremove_watchers(zhandle_t *zh, const char *path, ZooWatcherType wtype, +watcher_fn watcher, void *watcherCtx, int local, +void_completion_t *completion, const void *data) +{ +char *server_path = prepend_string(zh, path); +int rc; +struct oarchive *oa; +struct RequestHeader h = { get_xid(), ZOO_REMOVE_WATCHES }; +struct RemoveWatchesRequest req = { (char*)server_path, wtype }; +watcher_deregistration_t *wdo; + +if (!zh || !isValidPath(server_path, 0)) { +rc = ZBADARGUMENTS; +goto done; +} + +if (!local && is_unrecoverable(zh)) { +rc = ZINVALIDSTATE; +goto done; +} + +if (!pathHasWatcher(zh, server_path, wtype, watcher, watcherCtx)) { +rc = ZNOWATCHER; +goto done; +} + +if (local) { +removeWatchers(zh, server_path, wtype, watcher, watcherCtx); +#ifdef THREADED +notify_sync_completion((struct sync_completion *)data); --- End diff -- @breed @fpj btw -- sorry for the confusing code. `zoo_aremove_watchers` is sui generis given that it's the only public method that can return `ZOK` without scheduling a remote call (for which then, the callback would be naturally dispatched). Thus, this horrible hack of calling `notify_sync_completion()`. > Remove *synchronous* calls from the *single-threaded* C clieant API, since > they are documented not to work > -- > > Key: ZOOKEEPER-761 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-761 > Project: ZooKeeper > Issue Type: Improvement > Components: c client >Affects Versions: 3.1.1, 3.2.2 > Environment: RHEL 4u8 (Linux). The issue is not OS-specific though. >Reporter: Jozef Hatala >Assignee: Benjamin Reed >Priority: Minor > Fix For: 3.5.3, 3.6.0 > > Attachments: fix-sync-apis-in-st-adaptor.patch, > fix-sync-apis-in-st-adaptor.v2.patch > > > Since the synchronous calls are > [known|http://hadoop.apache.org/zookeeper/docs/current/zookeeperProgrammers.html#Using+the+C+Client] > to be unimplemented in the single threaded version of the client library > libzookeeper_st.so, I believe that it would be helpful towards users of the > library if that information was also obvious from the header file. > Anecdotally more than one of us here made the mistake of starting by using > the synchronous calls with the single-threaded library, and we found > ourselves debugging it. An early warning would have been greatly appreciated. > 1. Could you please add warnings to the doxygen blocks of all synchronous > calls saying that they are not available in the single-threaded API. This > cannot be safely done with {{#ifdef THREADED}}, obviously, because the same > header file is included whichever client library implementation one is > compiling for. > 2. Could you please bracket the implementation of all synchronous calls in > zookeeper.c with {{#ifdef THREADED}} and {{#endif}}, so that those symbols > are not present in libzookeeper_st.so? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (ZOOKEEPER-761) Remove *synchronous* calls from the *single-threaded* C clieant API, since they are documented not to work
[ https://issues.apache.org/jira/browse/ZOOKEEPER-761?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15658066#comment-15658066 ] ASF GitHub Bot commented on ZOOKEEPER-761: -- Github user breed commented on a diff in the pull request: https://github.com/apache/zookeeper/pull/90#discussion_r87652058 --- Diff: src/c/src/zookeeper.c --- @@ -4052,6 +3958,76 @@ int zoo_amulti(zhandle_t *zh, int count, const zoo_op_t *ops, return (rc < 0) ? ZMARSHALLINGERROR : ZOK; } + +int zoo_aremove_watchers(zhandle_t *zh, const char *path, ZooWatcherType wtype, +watcher_fn watcher, void *watcherCtx, int local, +void_completion_t *completion, const void *data) +{ +char *server_path = prepend_string(zh, path); +int rc; +struct oarchive *oa; +struct RequestHeader h = { get_xid(), ZOO_REMOVE_WATCHES }; +struct RemoveWatchesRequest req = { (char*)server_path, wtype }; +watcher_deregistration_t *wdo; + +if (!zh || !isValidPath(server_path, 0)) { +rc = ZBADARGUMENTS; +goto done; +} + +if (!local && is_unrecoverable(zh)) { +rc = ZINVALIDSTATE; +goto done; +} + +if (!pathHasWatcher(zh, server_path, wtype, watcher, watcherCtx)) { +rc = ZNOWATCHER; +goto done; +} + +if (local) { +removeWatchers(zh, server_path, wtype, watcher, watcherCtx); +#ifdef THREADED +notify_sync_completion((struct sync_completion *)data); --- End diff -- so, just to be clear. is this change correct? we don't need to call notify_sync_completion in the non-threaded case. right? > Remove *synchronous* calls from the *single-threaded* C clieant API, since > they are documented not to work > -- > > Key: ZOOKEEPER-761 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-761 > Project: ZooKeeper > Issue Type: Improvement > Components: c client >Affects Versions: 3.1.1, 3.2.2 > Environment: RHEL 4u8 (Linux). The issue is not OS-specific though. >Reporter: Jozef Hatala >Assignee: Benjamin Reed >Priority: Minor > Fix For: 3.5.3, 3.6.0 > > Attachments: fix-sync-apis-in-st-adaptor.patch, > fix-sync-apis-in-st-adaptor.v2.patch > > > Since the synchronous calls are > [known|http://hadoop.apache.org/zookeeper/docs/current/zookeeperProgrammers.html#Using+the+C+Client] > to be unimplemented in the single threaded version of the client library > libzookeeper_st.so, I believe that it would be helpful towards users of the > library if that information was also obvious from the header file. > Anecdotally more than one of us here made the mistake of starting by using > the synchronous calls with the single-threaded library, and we found > ourselves debugging it. An early warning would have been greatly appreciated. > 1. Could you please add warnings to the doxygen blocks of all synchronous > calls saying that they are not available in the single-threaded API. This > cannot be safely done with {{#ifdef THREADED}}, obviously, because the same > header file is included whichever client library implementation one is > compiling for. > 2. Could you please bracket the implementation of all synchronous calls in > zookeeper.c with {{#ifdef THREADED}} and {{#endif}}, so that those symbols > are not present in libzookeeper_st.so? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (ZOOKEEPER-761) Remove *synchronous* calls from the *single-threaded* C clieant API, since they are documented not to work
[ https://issues.apache.org/jira/browse/ZOOKEEPER-761?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15651712#comment-15651712 ] Patrick Hunt commented on ZOOKEEPER-761: bq. we should deprecate the single threaded API altogether. what do others think? I know of a number of users who use the single thread apis, they provide flexibility for integrating into third party code that may or may not be able to use threads (for whatever reason). > Remove *synchronous* calls from the *single-threaded* C clieant API, since > they are documented not to work > -- > > Key: ZOOKEEPER-761 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-761 > Project: ZooKeeper > Issue Type: Improvement > Components: c client >Affects Versions: 3.1.1, 3.2.2 > Environment: RHEL 4u8 (Linux). The issue is not OS-specific though. >Reporter: Jozef Hatala >Assignee: Benjamin Reed >Priority: Minor > Fix For: 3.5.3, 3.6.0 > > Attachments: fix-sync-apis-in-st-adaptor.patch, > fix-sync-apis-in-st-adaptor.v2.patch > > > Since the synchronous calls are > [known|http://hadoop.apache.org/zookeeper/docs/current/zookeeperProgrammers.html#Using+the+C+Client] > to be unimplemented in the single threaded version of the client library > libzookeeper_st.so, I believe that it would be helpful towards users of the > library if that information was also obvious from the header file. > Anecdotally more than one of us here made the mistake of starting by using > the synchronous calls with the single-threaded library, and we found > ourselves debugging it. An early warning would have been greatly appreciated. > 1. Could you please add warnings to the doxygen blocks of all synchronous > calls saying that they are not available in the single-threaded API. This > cannot be safely done with {{#ifdef THREADED}}, obviously, because the same > header file is included whichever client library implementation one is > compiling for. > 2. Could you please bracket the implementation of all synchronous calls in > zookeeper.c with {{#ifdef THREADED}} and {{#endif}}, so that those symbols > are not present in libzookeeper_st.so? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (ZOOKEEPER-761) Remove *synchronous* calls from the *single-threaded* C clieant API, since they are documented not to work
[ https://issues.apache.org/jira/browse/ZOOKEEPER-761?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15612119#comment-15612119 ] ASF GitHub Bot commented on ZOOKEEPER-761: -- Github user breed commented on the issue: https://github.com/apache/zookeeper/pull/90 @fpj on the plus side that failure validates that the change is correct :) (it is trying to use a sync API with a non threaded test) > Remove *synchronous* calls from the *single-threaded* C clieant API, since > they are documented not to work > -- > > Key: ZOOKEEPER-761 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-761 > Project: ZooKeeper > Issue Type: Improvement > Components: c client >Affects Versions: 3.1.1, 3.2.2 > Environment: RHEL 4u8 (Linux). The issue is not OS-specific though. >Reporter: Jozef Hatala >Assignee: Benjamin Reed >Priority: Minor > Fix For: 3.5.3, 3.6.0 > > Attachments: fix-sync-apis-in-st-adaptor.patch, > fix-sync-apis-in-st-adaptor.v2.patch > > > Since the synchronous calls are > [known|http://hadoop.apache.org/zookeeper/docs/current/zookeeperProgrammers.html#Using+the+C+Client] > to be unimplemented in the single threaded version of the client library > libzookeeper_st.so, I believe that it would be helpful towards users of the > library if that information was also obvious from the header file. > Anecdotally more than one of us here made the mistake of starting by using > the synchronous calls with the single-threaded library, and we found > ourselves debugging it. An early warning would have been greatly appreciated. > 1. Could you please add warnings to the doxygen blocks of all synchronous > calls saying that they are not available in the single-threaded API. This > cannot be safely done with {{#ifdef THREADED}}, obviously, because the same > header file is included whichever client library implementation one is > compiling for. > 2. Could you please bracket the implementation of all synchronous calls in > zookeeper.c with {{#ifdef THREADED}} and {{#endif}}, so that those symbols > are not present in libzookeeper_st.so? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (ZOOKEEPER-761) Remove *synchronous* calls from the *single-threaded* C clieant API, since they are documented not to work
[ https://issues.apache.org/jira/browse/ZOOKEEPER-761?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15612002#comment-15612002 ] Benjamin Reed commented on ZOOKEEPER-761: - not yet, i have a mac and tests don't seem to work on a mac. i haven't had a chance to test on linux yet. > Remove *synchronous* calls from the *single-threaded* C clieant API, since > they are documented not to work > -- > > Key: ZOOKEEPER-761 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-761 > Project: ZooKeeper > Issue Type: Improvement > Components: c client >Affects Versions: 3.1.1, 3.2.2 > Environment: RHEL 4u8 (Linux). The issue is not OS-specific though. >Reporter: Jozef Hatala >Assignee: Benjamin Reed >Priority: Minor > Fix For: 3.5.3, 3.6.0 > > Attachments: fix-sync-apis-in-st-adaptor.patch, > fix-sync-apis-in-st-adaptor.v2.patch > > > Since the synchronous calls are > [known|http://hadoop.apache.org/zookeeper/docs/current/zookeeperProgrammers.html#Using+the+C+Client] > to be unimplemented in the single threaded version of the client library > libzookeeper_st.so, I believe that it would be helpful towards users of the > library if that information was also obvious from the header file. > Anecdotally more than one of us here made the mistake of starting by using > the synchronous calls with the single-threaded library, and we found > ourselves debugging it. An early warning would have been greatly appreciated. > 1. Could you please add warnings to the doxygen blocks of all synchronous > calls saying that they are not available in the single-threaded API. This > cannot be safely done with {{#ifdef THREADED}}, obviously, because the same > header file is included whichever client library implementation one is > compiling for. > 2. Could you please bracket the implementation of all synchronous calls in > zookeeper.c with {{#ifdef THREADED}} and {{#endif}}, so that those symbols > are not present in libzookeeper_st.so? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (ZOOKEEPER-761) Remove *synchronous* calls from the *single-threaded* C clieant API, since they are documented not to work
[ https://issues.apache.org/jira/browse/ZOOKEEPER-761?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15611643#comment-15611643 ] ASF GitHub Bot commented on ZOOKEEPER-761: -- Github user fpj commented on the issue: https://github.com/apache/zookeeper/pull/90 @breed `make check` does not compile for me: ``` g++ -DHAVE_CONFIG_H -I. -I./include -I./tests -I./generated -DUSE_STATIC_LIB -DZKSERVER_CMD="\"./tests/zkServer.sh\"" -DZOO_IPV6_ENABLED -g -O2 -MT zktest_st-TestReconfigServer.o -MD -MP -MF .deps/zktest_st-TestReconfigServer.Tpo -c -o zktest_st-TestReconfigServer.o `test -f 'tests/TestReconfigServer.cc' || echo './'`tests/TestReconfigServer.cc In file included from /usr/include/cppunit/TestCase.h:6:0, from /usr/include/cppunit/TestCaller.h:5, from /usr/include/cppunit/extensions/HelperMacros.h:9, from tests/TestReconfigServer.cc:18: tests/TestReconfigServer.cc: In member function 'void TestReconfigServer::testRemoveFollower()': tests/TestReconfigServer.cc:153:73: error: 'zoo_getconfig' was not declared in this scope CPPUNIT_ASSERT_EQUAL((int)ZOK, zoo_getconfig(zk, 0, buf, &len, &stat)); ^ tests/TestReconfigServer.cc:174:32: error: 'zoo_reconfig' was not declared in this scope &stat); ^ In file included from /usr/include/cppunit/TestCase.h:6:0, from /usr/include/cppunit/TestCaller.h:5, from /usr/include/cppunit/extensions/HelperMacros.h:9, from tests/TestReconfigServer.cc:18: tests/TestReconfigServer.cc: In member function 'void TestReconfigServer::testNonIncremental()': tests/TestReconfigServer.cc:221:73: error: 'zoo_getconfig' was not declared in this scope CPPUNIT_ASSERT_EQUAL((int)ZOK, zoo_getconfig(zk, 0, buf, &len, &stat)); ^ tests/TestReconfigServer.cc:246:32: error: 'zoo_reconfig' was not declared in this scope &stat); ^ tests/TestReconfigServer.cc: In member function 'void TestReconfigServer::testRemoveConnectedFollower()': tests/TestReconfigServer.cc:313:72: error: 'zoo_reconfig' was not declared in this scope zoo_reconfig(zk, NULL, ss.str().c_str(), NULL, -1, buf, &len, &stat); ^ In file included from /usr/include/cppunit/TestCase.h:6:0, from /usr/include/cppunit/TestCaller.h:5, from /usr/include/cppunit/extensions/HelperMacros.h:9, from tests/TestReconfigServer.cc:18: tests/TestReconfigServer.cc:314:73: error: 'zoo_getconfig' was not declared in this scope CPPUNIT_ASSERT_EQUAL((int)ZOK, zoo_getconfig(zk, 0, buf, &len, &stat)); ``` have you tried running the C tests? > Remove *synchronous* calls from the *single-threaded* C clieant API, since > they are documented not to work > -- > > Key: ZOOKEEPER-761 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-761 > Project: ZooKeeper > Issue Type: Improvement > Components: c client >Affects Versions: 3.1.1, 3.2.2 > Environment: RHEL 4u8 (Linux). The issue is not OS-specific though. >Reporter: Jozef Hatala >Assignee: Benjamin Reed >Priority: Minor > Fix For: 3.5.3, 3.6.0 > > Attachments: fix-sync-apis-in-st-adaptor.patch, > fix-sync-apis-in-st-adaptor.v2.patch > > > Since the synchronous calls are > [known|http://hadoop.apache.org/zookeeper/docs/current/zookeeperProgrammers.html#Using+the+C+Client] > to be unimplemented in the single threaded version of the client library > libzookeeper_st.so, I believe that it would be helpful towards users of the > library if that information was also obvious from the header file. > Anecdotally more than one of us here made the mistake of starting by using > the synchronous calls with the single-threaded library, and we found > ourselves debugging it. An early warning would have been greatly appreciated. > 1. Could you please add warnings to the doxygen blocks of all synchronous > calls saying that they are not available in the single-threaded API. This > cannot be safely done with {{#ifdef THREADED}}, obviously, because the same > header file is included whichever client library implementation one is > compiling for. > 2. Could you please bracket the implementation of all synchronous calls in > z
[jira] [Commented] (ZOOKEEPER-761) Remove *synchronous* calls from the *single-threaded* C clieant API, since they are documented not to work
[ https://issues.apache.org/jira/browse/ZOOKEEPER-761?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15609180#comment-15609180 ] Flavio Junqueira commented on ZOOKEEPER-761: Hmm, the github stuff is also not running QA, right? > Remove *synchronous* calls from the *single-threaded* C clieant API, since > they are documented not to work > -- > > Key: ZOOKEEPER-761 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-761 > Project: ZooKeeper > Issue Type: Improvement > Components: c client >Affects Versions: 3.1.1, 3.2.2 > Environment: RHEL 4u8 (Linux). The issue is not OS-specific though. >Reporter: Jozef Hatala >Assignee: Benjamin Reed >Priority: Minor > Fix For: 3.5.3, 3.6.0 > > Attachments: fix-sync-apis-in-st-adaptor.patch, > fix-sync-apis-in-st-adaptor.v2.patch > > > Since the synchronous calls are > [known|http://hadoop.apache.org/zookeeper/docs/current/zookeeperProgrammers.html#Using+the+C+Client] > to be unimplemented in the single threaded version of the client library > libzookeeper_st.so, I believe that it would be helpful towards users of the > library if that information was also obvious from the header file. > Anecdotally more than one of us here made the mistake of starting by using > the synchronous calls with the single-threaded library, and we found > ourselves debugging it. An early warning would have been greatly appreciated. > 1. Could you please add warnings to the doxygen blocks of all synchronous > calls saying that they are not available in the single-threaded API. This > cannot be safely done with {{#ifdef THREADED}}, obviously, because the same > header file is included whichever client library implementation one is > compiling for. > 2. Could you please bracket the implementation of all synchronous calls in > zookeeper.c with {{#ifdef THREADED}} and {{#endif}}, so that those symbols > are not present in libzookeeper_st.so? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (ZOOKEEPER-761) Remove *synchronous* calls from the *single-threaded* C clieant API, since they are documented not to work
[ https://issues.apache.org/jira/browse/ZOOKEEPER-761?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15605468#comment-15605468 ] Benjamin Reed commented on ZOOKEEPER-761: - for some reason my comments/changes do not get bridged. i've updated the pr to move zoo_remove_watchers into the #ifdef > Remove *synchronous* calls from the *single-threaded* C clieant API, since > they are documented not to work > -- > > Key: ZOOKEEPER-761 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-761 > Project: ZooKeeper > Issue Type: Improvement > Components: c client >Affects Versions: 3.1.1, 3.2.2 > Environment: RHEL 4u8 (Linux). The issue is not OS-specific though. >Reporter: Jozef Hatala >Assignee: Benjamin Reed >Priority: Minor > Fix For: 3.5.3, 3.6.0 > > Attachments: fix-sync-apis-in-st-adaptor.patch, > fix-sync-apis-in-st-adaptor.v2.patch > > > Since the synchronous calls are > [known|http://hadoop.apache.org/zookeeper/docs/current/zookeeperProgrammers.html#Using+the+C+Client] > to be unimplemented in the single threaded version of the client library > libzookeeper_st.so, I believe that it would be helpful towards users of the > library if that information was also obvious from the header file. > Anecdotally more than one of us here made the mistake of starting by using > the synchronous calls with the single-threaded library, and we found > ourselves debugging it. An early warning would have been greatly appreciated. > 1. Could you please add warnings to the doxygen blocks of all synchronous > calls saying that they are not available in the single-threaded API. This > cannot be safely done with {{#ifdef THREADED}}, obviously, because the same > header file is included whichever client library implementation one is > compiling for. > 2. Could you please bracket the implementation of all synchronous calls in > zookeeper.c with {{#ifdef THREADED}} and {{#endif}}, so that those symbols > are not present in libzookeeper_st.so? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (ZOOKEEPER-761) Remove *synchronous* calls from the *single-threaded* C clieant API, since they are documented not to work
[ https://issues.apache.org/jira/browse/ZOOKEEPER-761?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15598481#comment-15598481 ] ASF GitHub Bot commented on ZOOKEEPER-761: -- Github user hanm commented on a diff in the pull request: https://github.com/apache/zookeeper/pull/90#discussion_r84585224 --- Diff: src/c/include/zookeeper.h --- @@ -2000,6 +2001,7 @@ ZOOAPI int zoo_set_acl(zhandle_t *zh, const char *path, int version, * \ref zoo_acreate, \ref zoo_adelete, \ref zoo_aset). */ ZOOAPI int zoo_multi(zhandle_t *zh, int count, const zoo_op_t *ops, zoo_op_result_t *results); +#endif --- End diff -- +1 > Remove *synchronous* calls from the *single-threaded* C clieant API, since > they are documented not to work > -- > > Key: ZOOKEEPER-761 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-761 > Project: ZooKeeper > Issue Type: Improvement > Components: c client >Affects Versions: 3.1.1, 3.2.2 > Environment: RHEL 4u8 (Linux). The issue is not OS-specific though. >Reporter: Jozef Hatala >Assignee: Benjamin Reed >Priority: Minor > Fix For: 3.5.3, 3.6.0 > > Attachments: fix-sync-apis-in-st-adaptor.patch, > fix-sync-apis-in-st-adaptor.v2.patch > > > Since the synchronous calls are > [known|http://hadoop.apache.org/zookeeper/docs/current/zookeeperProgrammers.html#Using+the+C+Client] > to be unimplemented in the single threaded version of the client library > libzookeeper_st.so, I believe that it would be helpful towards users of the > library if that information was also obvious from the header file. > Anecdotally more than one of us here made the mistake of starting by using > the synchronous calls with the single-threaded library, and we found > ourselves debugging it. An early warning would have been greatly appreciated. > 1. Could you please add warnings to the doxygen blocks of all synchronous > calls saying that they are not available in the single-threaded API. This > cannot be safely done with {{#ifdef THREADED}}, obviously, because the same > header file is included whichever client library implementation one is > compiling for. > 2. Could you please bracket the implementation of all synchronous calls in > zookeeper.c with {{#ifdef THREADED}} and {{#endif}}, so that those symbols > are not present in libzookeeper_st.so? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (ZOOKEEPER-761) Remove *synchronous* calls from the *single-threaded* C clieant API, since they are documented not to work
[ https://issues.apache.org/jira/browse/ZOOKEEPER-761?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15598295#comment-15598295 ] Raul Gutierrez Segales commented on ZOOKEEPER-761: -- Commented on GH — overall lgtm as well. Wrt to the lack of type safeness in assuming {code}const void *data{code} will be {code}struct sync_completion*{code} I think that's probably work for another ticket. All other async calls operate under the same assumption. > Remove *synchronous* calls from the *single-threaded* C clieant API, since > they are documented not to work > -- > > Key: ZOOKEEPER-761 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-761 > Project: ZooKeeper > Issue Type: Improvement > Components: c client >Affects Versions: 3.1.1, 3.2.2 > Environment: RHEL 4u8 (Linux). The issue is not OS-specific though. >Reporter: Jozef Hatala >Assignee: Benjamin Reed >Priority: Minor > Fix For: 3.5.3, 3.6.0 > > Attachments: fix-sync-apis-in-st-adaptor.patch, > fix-sync-apis-in-st-adaptor.v2.patch > > > Since the synchronous calls are > [known|http://hadoop.apache.org/zookeeper/docs/current/zookeeperProgrammers.html#Using+the+C+Client] > to be unimplemented in the single threaded version of the client library > libzookeeper_st.so, I believe that it would be helpful towards users of the > library if that information was also obvious from the header file. > Anecdotally more than one of us here made the mistake of starting by using > the synchronous calls with the single-threaded library, and we found > ourselves debugging it. An early warning would have been greatly appreciated. > 1. Could you please add warnings to the doxygen blocks of all synchronous > calls saying that they are not available in the single-threaded API. This > cannot be safely done with {{#ifdef THREADED}}, obviously, because the same > header file is included whichever client library implementation one is > compiling for. > 2. Could you please bracket the implementation of all synchronous calls in > zookeeper.c with {{#ifdef THREADED}} and {{#endif}}, so that those symbols > are not present in libzookeeper_st.so? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (ZOOKEEPER-761) Remove *synchronous* calls from the *single-threaded* C clieant API, since they are documented not to work
[ https://issues.apache.org/jira/browse/ZOOKEEPER-761?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15592526#comment-15592526 ] ASF GitHub Bot commented on ZOOKEEPER-761: -- GitHub user breed opened a pull request: https://github.com/apache/zookeeper/pull/90 ZOOKEEPER-761: Remove *synchronous* calls from the *single-threaded* C client API the synchronous calls from a single-threaded client do not work. this patch makes using them in a single-threaded client a compilation error. You can merge this pull request into a Git repository by running: $ git pull https://github.com/breed/zookeeper ZOOKEEPER-761 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/zookeeper/pull/90.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #90 commit af04dd6fc0b74ab723e6ce449c0e80cc73df Author: Ben Reed Date: 2016-10-19T17:36:44Z ZOOKEEPER-761: Remove *synchronous* calls from the *single-threaded* C client API the synchronous calls from a single-threaded client do not work. this patch makes using them in a single-threaded client a compilation error. > Remove *synchronous* calls from the *single-threaded* C clieant API, since > they are documented not to work > -- > > Key: ZOOKEEPER-761 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-761 > Project: ZooKeeper > Issue Type: Improvement > Components: c client >Affects Versions: 3.1.1, 3.2.2 > Environment: RHEL 4u8 (Linux). The issue is not OS-specific though. >Reporter: Jozef Hatala >Assignee: Pierre Habouzit >Priority: Minor > Fix For: 3.5.3, 3.6.0 > > Attachments: fix-sync-apis-in-st-adaptor.patch, > fix-sync-apis-in-st-adaptor.v2.patch > > > Since the synchronous calls are > [known|http://hadoop.apache.org/zookeeper/docs/current/zookeeperProgrammers.html#Using+the+C+Client] > to be unimplemented in the single threaded version of the client library > libzookeeper_st.so, I believe that it would be helpful towards users of the > library if that information was also obvious from the header file. > Anecdotally more than one of us here made the mistake of starting by using > the synchronous calls with the single-threaded library, and we found > ourselves debugging it. An early warning would have been greatly appreciated. > 1. Could you please add warnings to the doxygen blocks of all synchronous > calls saying that they are not available in the single-threaded API. This > cannot be safely done with {{#ifdef THREADED}}, obviously, because the same > header file is included whichever client library implementation one is > compiling for. > 2. Could you please bracket the implementation of all synchronous calls in > zookeeper.c with {{#ifdef THREADED}} and {{#endif}}, so that those symbols > are not present in libzookeeper_st.so? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (ZOOKEEPER-761) Remove *synchronous* calls from the *single-threaded* C clieant API, since they are documented not to work
[ https://issues.apache.org/jira/browse/ZOOKEEPER-761?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15586990#comment-15586990 ] Flavio Junqueira commented on ZOOKEEPER-761: +1 to wrapping the sync calls with {{#ifdef THREADED}}. We should also improve the documentation for the C client with respect to threaded vs. not threaded. > Remove *synchronous* calls from the *single-threaded* C clieant API, since > they are documented not to work > -- > > Key: ZOOKEEPER-761 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-761 > Project: ZooKeeper > Issue Type: Improvement > Components: c client >Affects Versions: 3.1.1, 3.2.2 > Environment: RHEL 4u8 (Linux). The issue is not OS-specific though. >Reporter: Jozef Hatala >Assignee: Pierre Habouzit >Priority: Minor > Fix For: 3.5.3, 3.6.0 > > Attachments: fix-sync-apis-in-st-adaptor.patch, > fix-sync-apis-in-st-adaptor.v2.patch > > > Since the synchronous calls are > [known|http://hadoop.apache.org/zookeeper/docs/current/zookeeperProgrammers.html#Using+the+C+Client] > to be unimplemented in the single threaded version of the client library > libzookeeper_st.so, I believe that it would be helpful towards users of the > library if that information was also obvious from the header file. > Anecdotally more than one of us here made the mistake of starting by using > the synchronous calls with the single-threaded library, and we found > ourselves debugging it. An early warning would have been greatly appreciated. > 1. Could you please add warnings to the doxygen blocks of all synchronous > calls saying that they are not available in the single-threaded API. This > cannot be safely done with {{#ifdef THREADED}}, obviously, because the same > header file is included whichever client library implementation one is > compiling for. > 2. Could you please bracket the implementation of all synchronous calls in > zookeeper.c with {{#ifdef THREADED}} and {{#endif}}, so that those symbols > are not present in libzookeeper_st.so? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (ZOOKEEPER-761) Remove *synchronous* calls from the *single-threaded* C clieant API, since they are documented not to work
[ https://issues.apache.org/jira/browse/ZOOKEEPER-761?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15586975#comment-15586975 ] Michael Han commented on ZOOKEEPER-761: --- Single threaded API seems to be useful for certain use cases reported on mailing list besides historical reasons for supporting FreeBSD 4.X :-) - such as embedding ZK in certain runtimes like node/libuv where single thread is a natural fit. Deprecating single threaded api might impact those cases but there should be workaround (i.e. a pure javascript client for node.js instead of embedding zk). > Remove *synchronous* calls from the *single-threaded* C clieant API, since > they are documented not to work > -- > > Key: ZOOKEEPER-761 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-761 > Project: ZooKeeper > Issue Type: Improvement > Components: c client >Affects Versions: 3.1.1, 3.2.2 > Environment: RHEL 4u8 (Linux). The issue is not OS-specific though. >Reporter: Jozef Hatala >Assignee: Pierre Habouzit >Priority: Minor > Fix For: 3.5.3, 3.6.0 > > Attachments: fix-sync-apis-in-st-adaptor.patch, > fix-sync-apis-in-st-adaptor.v2.patch > > > Since the synchronous calls are > [known|http://hadoop.apache.org/zookeeper/docs/current/zookeeperProgrammers.html#Using+the+C+Client] > to be unimplemented in the single threaded version of the client library > libzookeeper_st.so, I believe that it would be helpful towards users of the > library if that information was also obvious from the header file. > Anecdotally more than one of us here made the mistake of starting by using > the synchronous calls with the single-threaded library, and we found > ourselves debugging it. An early warning would have been greatly appreciated. > 1. Could you please add warnings to the doxygen blocks of all synchronous > calls saying that they are not available in the single-threaded API. This > cannot be safely done with {{#ifdef THREADED}}, obviously, because the same > header file is included whichever client library implementation one is > compiling for. > 2. Could you please bracket the implementation of all synchronous calls in > zookeeper.c with {{#ifdef THREADED}} and {{#endif}}, so that those symbols > are not present in libzookeeper_st.so? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (ZOOKEEPER-761) Remove *synchronous* calls from the *single-threaded* C clieant API, since they are documented not to work
[ https://issues.apache.org/jira/browse/ZOOKEEPER-761?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15586819#comment-15586819 ] Benjamin Reed commented on ZOOKEEPER-761: - this is a pretty good patch to make things start working, but i think we should deprecate the single threaded API altogether. what do others think? concretely, i propose that we had #ifdef THREADED around the sync APIs and also add a warning that the non THREADED API is deprecated. > Remove *synchronous* calls from the *single-threaded* C clieant API, since > they are documented not to work > -- > > Key: ZOOKEEPER-761 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-761 > Project: ZooKeeper > Issue Type: Improvement > Components: c client >Affects Versions: 3.1.1, 3.2.2 > Environment: RHEL 4u8 (Linux). The issue is not OS-specific though. >Reporter: Jozef Hatala >Assignee: Pierre Habouzit >Priority: Minor > Fix For: 3.5.3, 3.6.0 > > Attachments: fix-sync-apis-in-st-adaptor.patch, > fix-sync-apis-in-st-adaptor.v2.patch > > > Since the synchronous calls are > [known|http://hadoop.apache.org/zookeeper/docs/current/zookeeperProgrammers.html#Using+the+C+Client] > to be unimplemented in the single threaded version of the client library > libzookeeper_st.so, I believe that it would be helpful towards users of the > library if that information was also obvious from the header file. > Anecdotally more than one of us here made the mistake of starting by using > the synchronous calls with the single-threaded library, and we found > ourselves debugging it. An early warning would have been greatly appreciated. > 1. Could you please add warnings to the doxygen blocks of all synchronous > calls saying that they are not available in the single-threaded API. This > cannot be safely done with {{#ifdef THREADED}}, obviously, because the same > header file is included whichever client library implementation one is > compiling for. > 2. Could you please bracket the implementation of all synchronous calls in > zookeeper.c with {{#ifdef THREADED}} and {{#endif}}, so that those symbols > are not present in libzookeeper_st.so? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (ZOOKEEPER-761) Remove *synchronous* calls from the *single-threaded* C clieant API, since they are documented not to work
[ https://issues.apache.org/jira/browse/ZOOKEEPER-761?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13010752#comment-13010752 ] Hadoop QA commented on ZOOKEEPER-761: - -1 overall. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12474520/fix-sync-apis-in-st-adaptor.v2.patch against trunk revision 1082362. -1 @author. The patch appears to contain 1 @author tags which the Zookeeper community has agreed to not allow in code contributions. -1 tests included. The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch. +1 javadoc. The javadoc tool did not generate any warning messages. +1 javac. The applied patch does not increase the total number of javac compiler warnings. +1 findbugs. The patch does not introduce any new Findbugs (version 1.3.9) warnings. +1 release audit. The applied patch does not increase the total number of release audit warnings. +1 core tests. The patch passed core unit tests. +1 contrib tests. The patch passed contrib unit tests. Test results: https://hudson.apache.org/hudson/job/PreCommit-ZOOKEEPER-Build/197//testReport/ Findbugs warnings: https://hudson.apache.org/hudson/job/PreCommit-ZOOKEEPER-Build/197//artifact/trunk/build/test/findbugs/newPatchFindbugsWarnings.html Console output: https://hudson.apache.org/hudson/job/PreCommit-ZOOKEEPER-Build/197//console This message is automatically generated. > Remove *synchronous* calls from the *single-threaded* C clieant API, since > they are documented not to work > -- > > Key: ZOOKEEPER-761 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-761 > Project: ZooKeeper > Issue Type: Improvement > Components: c client >Affects Versions: 3.1.1, 3.2.2 > Environment: RHEL 4u8 (Linux). The issue is not OS-specific though. >Reporter: Jozef Hatala >Priority: Minor > Attachments: fix-sync-apis-in-st-adaptor.patch, > fix-sync-apis-in-st-adaptor.v2.patch > > > Since the synchronous calls are > [known|http://hadoop.apache.org/zookeeper/docs/current/zookeeperProgrammers.html#Using+the+C+Client] > to be unimplemented in the single threaded version of the client library > libzookeeper_st.so, I believe that it would be helpful towards users of the > library if that information was also obvious from the header file. > Anecdotally more than one of us here made the mistake of starting by using > the synchronous calls with the single-threaded library, and we found > ourselves debugging it. An early warning would have been greatly appreciated. > 1. Could you please add warnings to the doxygen blocks of all synchronous > calls saying that they are not available in the single-threaded API. This > cannot be safely done with {{#ifdef THREADED}}, obviously, because the same > header file is included whichever client library implementation one is > compiling for. > 2. Could you please bracket the implementation of all synchronous calls in > zookeeper.c with {{#ifdef THREADED}} and {{#endif}}, so that those symbols > are not present in libzookeeper_st.so? -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (ZOOKEEPER-761) Remove *synchronous* calls from the *single-threaded* C clieant API, since they are documented not to work
[ https://issues.apache.org/jira/browse/ZOOKEEPER-761?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13010717#comment-13010717 ] Hadoop QA commented on ZOOKEEPER-761: - -1 overall. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12474515/fix-sync-apis-in-st-adaptor.patch against trunk revision 1082362. +1 @author. The patch does not contain any @author tags. -1 tests included. The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch. -1 patch. The patch command could not apply the patch. Console output: https://hudson.apache.org/hudson/job/PreCommit-ZOOKEEPER-Build/196//console This message is automatically generated. > Remove *synchronous* calls from the *single-threaded* C clieant API, since > they are documented not to work > -- > > Key: ZOOKEEPER-761 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-761 > Project: ZooKeeper > Issue Type: Improvement > Components: c client >Affects Versions: 3.1.1, 3.2.2 > Environment: RHEL 4u8 (Linux). The issue is not OS-specific though. >Reporter: Jozef Hatala >Priority: Minor > Attachments: fix-sync-apis-in-st-adaptor.patch > > > Since the synchronous calls are > [known|http://hadoop.apache.org/zookeeper/docs/current/zookeeperProgrammers.html#Using+the+C+Client] > to be unimplemented in the single threaded version of the client library > libzookeeper_st.so, I believe that it would be helpful towards users of the > library if that information was also obvious from the header file. > Anecdotally more than one of us here made the mistake of starting by using > the synchronous calls with the single-threaded library, and we found > ourselves debugging it. An early warning would have been greatly appreciated. > 1. Could you please add warnings to the doxygen blocks of all synchronous > calls saying that they are not available in the single-threaded API. This > cannot be safely done with {{#ifdef THREADED}}, obviously, because the same > header file is included whichever client library implementation one is > compiling for. > 2. Could you please bracket the implementation of all synchronous calls in > zookeeper.c with {{#ifdef THREADED}} and {{#endif}}, so that those symbols > are not present in libzookeeper_st.so? -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira