-
Notifications
You must be signed in to change notification settings - Fork 50
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
a kvs watch handler cannot modify the key it watches #81
Comments
Example code (minus error handling)
|
Incidentally I think this is the same bug that @lipari hit in the scheduler a while back. |
This allows our deferred queue to make the reactor ready and should address issue flux-framework#81 for api sockets.
I've kept all the dialog regarding the problem which I can resurrect for the curious. The solution was to revamp the interaction with the kvs quite significantly. Here's a summary of what the original problem was: The schedsvr_main first waits for a lwj to appear in the kvs. Once the first job is submitted, it proceeds with its initialization. That initialization includes calling kvs_put_int64 with an initial value for "event-counter". That call is followed by kvs_commit(). In the meantime, wreck/jobsrv.c is creating lwj.1 with its state of "reserved". When the schedsvr invokes its kvs_commit(), the { "lwj.1.state": "reserved" } message gets added to p->deferred_responses based on this stack trace (which includes an abort I added for diagnostic purposes): #0 0x00002aaaabe60925 in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64 So, it looks like there is some cross talk happening. In the meantime, I'm going to move the initialization steps to happen before the wait for the first job and see whether that avoids the problem. Don |
This allows deferred messages to make the reactor ready and should address issue flux-framework#81 for module handles.
This allows deferred messages to make the reactor ready and should address issue flux-framework#81 for module handles.
This is a test for issue flux-framework#81
handle deferrred messages with an inproc socket. Fixes #81.
This allows our deferred queue to make the reactor ready and should address issue flux-framework#81 for api sockets.
This allows deferred messages to make the reactor ready and should address issue flux-framework#81 for module handles.
This is a test for issue flux-framework#81
travis-ci: update OAuth token for deploy
If a synchronous RPC is made within a kvs watch callback, and another kvs.watch response is received before the expected response to the RPC, it is put in a queue that will be processed the next time the handle blocks on a response. It will not, however, cause the reactor to become ready when it is re-entered following the watch callback.
The text was updated successfully, but these errors were encountered: