ruote tmp/log_2011-02-09.html

2011-02-09 00:27:22 utc sandbox https://github.com/dolores/ruote-redis-backend
2011-02-09 00:30:21 utc jmettraux which version of redis ?
2011-02-09 00:31:07 utc jmettraux may I have the error stack trace ?
2011-02-09 00:33:21 utc sandbox redis 2
2011-02-09 00:33:34 utc sandbox redis that at least has hashes
2011-02-09 00:33:51 utc jmettraux ok
2011-02-09 00:33:57 utc sandbox redis-2.1.1 is the ruby client
2011-02-09 00:34:19 utc sandbox 478 tests, 949 assertions, 0 failures, 0 errors; for functional tests
2011-02-09 00:37:12 utc jmettraux could you launch a run of "ruby test/functional/crunner.rb 0" let it run until it reaches 100 or 200 (or fails before)
2011-02-09 00:38:49 utc jmettraux sorry, "ruby test/functional/crunner.rb 0 -- --redis-backend"
2011-02-09 00:39:21 utc jmettraux argh, wrong
2011-02-09 00:40:31 utc jmettraux it's ". test/functional/crunner.sh 0 -- --redis-backend"
2011-02-09 00:41:31 utc sandbox i need to be in the ruote directory for this correct?
2011-02-09 00:41:37 utc jmettraux yes
2011-02-09 00:43:17 utc sandbox okay seems to be working so far, but will wait until it gets to 100 or 200
2011-02-09 00:43:26 utc sandbox what exactly does this test?
2011-02-09 00:44:03 utc jmettraux test/functional/ct_{0,1,2}_... are multiple workers tests
2011-02-09 00:44:44 utc jmettraux ct_0 tries to force a collision between two workers handling branches of a concurrence
2011-02-09 00:45:28 utc jmettraux ct_1 is about an iterator getting executed by a worker and cancelled by another
2011-02-09 00:45:47 utc jmettraux ct_2 is somehow a generalization of ct_1
2011-02-09 00:46:17 utc jmettraux ACTION installing redis 2.0.4
2011-02-09 00:46:39 utc sandbox https://gist.github.com/60bc5326bd64ac166725
2011-02-09 00:46:56 utc sandbox that's the trace for the error i'm getting
2011-02-09 00:47:26 utc jmettraux ok
2011-02-09 00:50:18 utc sandbox so far so good with crunner.sh 0
2011-02-09 00:50:25 utc jmettraux sandbox: how do you compose keys for "ruote docs" ?
2011-02-09 00:51:54 utc sandbox "ruote:msgs"
2011-02-09 00:51:58 utc sandbox "ruote:#{type}"
2011-02-09 00:52:04 utc sandbox it is a hash
2011-02-09 00:52:22 utc jmettraux does the subid go into id ?
2011-02-09 00:52:25 utc sandbox redis hash with fields (wfid) to the document string as json
2011-02-09 00:52:27 utc jmettraux (sub_wfid)
2011-02-09 00:54:03 utc sandbox i'm not entirely sure what that means sorry
2011-02-09 00:54:13 utc sandbox ["err_0!!20110209-hagijeho", "err_0_0_1!11867230486000!20110209-hagijeho"]
2011-02-09 00:54:35 utc jmettraux in https://gist.github.com/60bc5326bd64ac166725 is line 2 the id for the doc that fails to get persisted ?
2011-02-09 00:55:02 utc sandbox yes
2011-02-09 00:55:09 utc jmettraux sub_wfid is empty
2011-02-09 00:55:37 utc jmettraux are you using a vanilla ruote 2.1.11 or are you following master ?
2011-02-09 00:55:47 utc sandbox vanilla ruote 2.1.11
2011-02-09 00:55:53 utc jmettraux ok
2011-02-09 00:56:08 utc sandbox i can easily switch to following master
2011-02-09 00:56:41 utc jmettraux I was just surprised of the empty sub_wfid, but it's normal in 2.1.11
2011-02-09 00:57:19 utc sandbox interesting
2011-02-09 00:57:29 utc sandbox what is the sub_wfid supposed to be used for?
2011-02-09 00:57:33 utc sandbox and how do i make sure it isn't empty?
2011-02-09 00:57:48 utc jmettraux it's OK with ruote 2.1.11
2011-02-09 00:58:04 utc jmettraux in ruote 2.1.11 it's empty for a main process and filled for a subprocess
2011-02-09 00:58:19 utc jmettraux in ruote 2.2.x it is filled anyway
2011-02-09 00:59:26 utc sandbox and so initial_persist in this case is erring because it expects to find a sub_wfid as a key?
2011-02-09 01:01:22 utc jmettraux well no
2011-02-09 01:01:41 utc jmettraux it's failing because there is already a revision of this doc in the db
2011-02-09 01:02:00 utc jmettraux so another worker has already done the persist
2011-02-09 01:03:33 utc jmettraux sandbox: I'm preparing an env, on which ruby are you running ?
2011-02-09 01:03:43 utc sandbox ruby 1.8.7
2011-02-09 01:03:47 utc sandbox patch level 254
2011-02-09 01:03:59 utc sandbox i mean 249
2011-02-09 01:04:09 utc jmettraux ok
2011-02-09 01:04:11 utc sandbox whatever is the base ubuntu 10 install
2011-02-09 01:05:37 utc sandbox so if the persist has already been done by another worker, how should the worker recover?
2011-02-09 01:06:20 utc jmettraux it's loudly throwing an error because it shouldn't happen
2011-02-09 01:06:32 utc jmettraux the two workers are acting on the same "msg"
2011-02-09 01:06:42 utc sandbox ah okay
2011-02-09 01:06:53 utc jmettraux but one of them should have won
2011-02-09 01:07:02 utc sandbox i had some ideas for the redis backend to start dealing with messages in a similar way to resque
2011-02-09 01:08:22 utc jmettraux https://github.com/jmettraux/ruote/blob/master/lib/ruote/worker.rb#L207 (if @storage.reserve(msg) returns false, it means the worker lost and it lets the other do the work)
2011-02-09 01:10:22 utc jmettraux I will add tests about reserve to test/unit/storage.rb
2011-02-09 01:11:15 utc jmettraux it seems your implementation is not caring about conflicts when deleting
2011-02-09 01:12:00 utc jmettraux I could be wrong
2011-02-09 01:15:58 utc jmettraux ACTION working on a test for reserve in test/unit/storage.rb
2011-02-09 01:19:51 utc sandbox okay that would be really helpful
2011-02-09 01:21:10 utc jmettraux sandbox: what is your "similar way to resque" idea ?
2011-02-09 01:23:00 utc sandbox the way workers grab msgs it seems that the grabbable msgs should be on a redis list
2011-02-09 01:23:04 utc sandbox and workers just pop them off
2011-02-09 01:23:07 utc sandbox if they are popped off
2011-02-09 01:23:12 utc jmettraux +1
2011-02-09 01:23:19 utc sandbox then no other worker can grab it
2011-02-09 01:29:18 utc jmettraux get_msgs and put_msgs are ripe for overriding
2011-02-09 01:30:13 utc sandbox that was the plan
2011-02-09 01:32:20 utc sandbox just needed to make sure the base implementation was not borked in some way
2011-02-09 01:33:55 utc jmettraux justed pushed https://github.com/jmettraux/ruote/commit/e5033dd46fc61f5bc0e8d1948d05a496869afe78
2011-02-09 01:35:36 utc jmettraux assertion fails if jobs were reserved more than once
2011-02-09 01:36:26 utc sandbox mine still pass those
2011-02-09 01:36:35 utc jmettraux ouch
2011-02-09 01:37:23 utc jmettraux double-checking
2011-02-09 01:37:40 utc jmettraux I might be completely off with that
2011-02-09 01:38:24 utc jmettraux yeah, sorry, it's useless, no jobs get reserved at all
2011-02-09 01:39:05 utc jmettraux fixing
2011-02-09 01:43:53 utc jmettraux and now it fails for my own ruote-redis, damn
2011-02-09 01:45:39 utc sandbox i'm a little glad that it isn't just me then
2011-02-09 01:45:58 utc sandbox do you think we should be using ruote off the master branch?
2011-02-09 01:46:23 utc jmettraux I will be releasing 2.2.0 soon
2011-02-09 01:46:34 utc jmettraux let me look at the changelog
2011-02-09 01:46:50 utc jmettraux ACTION facepalms
2011-02-09 01:50:35 utc jmettraux better : https://github.com/jmettraux/ruote/blob/master/test/unit/storage.rb#L281-314 but it makes my ruote-redis and my ruote-dm fail
2011-02-09 01:52:22 utc jmettraux changelog : https://github.com/jmettraux/ruote/blob/master/CHANGELOG.txt#L4-55 it's a cumulation of minor improvements
2011-02-09 01:52:45 utc jmettraux it's a "2.2" since the "stateful participants" got banned
2011-02-09 01:53:28 utc jmettraux it also has to sub_wfid change which counters edge case issues with loops and subprocesses
2011-02-09 01:53:44 utc sandbox interesting, and i did notice it for the dm version but thought i was doing something else wrong
2011-02-09 01:54:23 utc jmettraux it's always my fault ;-)
2011-02-09 01:55:07 utc jmettraux 2.2.0 has lots of goodies
2011-02-09 01:55:24 utc sandbox mine still doesn't fail on that test
2011-02-09 01:55:34 utc sandbox 20 tests, 40 assertions, 0 failures, 0 errors
2011-02-09 01:56:31 utc jmettraux mine fails with redis 1.2.6 and 2.0.4 :-(
2011-02-09 01:57:29 utc jmettraux trying yours
2011-02-09 01:59:52 utc jmettraux sandbox: is redis_support part of redis 2.0.13 ?
2011-02-09 02:00:53 utc sandbox no it's a separate gem we developed
2011-02-09 02:00:55 utc sandbox to manage keys
2011-02-09 02:00:58 utc sandbox and locking
2011-02-09 02:01:02 utc sandbox in a simple way
2011-02-09 02:01:17 utc jmettraux how can I get it ?
2011-02-09 02:01:18 utc sandbox in the readme
2011-02-09 02:01:20 utc sandbox you can use bundler
2011-02-09 02:01:22 utc jmettraux ok
2011-02-09 02:01:28 utc sandbox to get the gems bundled and run the tests
2011-02-09 02:01:39 utc sandbox you have to run the test from the ruote-redis-backend folder
2011-02-09 02:01:55 utc sandbox to do the concurrency test i changed the directories the shell script called
2011-02-09 02:03:39 utc jmettraux ruote-redis-backend is not successful at test_reserve https://gist.github.com/817751 (for me)
2011-02-09 02:04:22 utc sandbox that is a good sign
2011-02-09 02:04:42 utc jmettraux I hope it can help you develop your list idea
2011-02-09 02:05:25 utc sandbox what version of redis, and ruby redis are you using?
2011-02-09 02:06:07 utc jmettraux redis 2.0.4, redis 2.0.13, redis_support 0.0.13
2011-02-09 02:06:16 utc jmettraux ruby redis 2.0.13
2011-02-09 02:06:29 utc jmettraux 1.8.7-p249 on snoleo
2011-02-09 02:07:28 utc sandbox i have redis 2.1.1, redis 2.1.1
2011-02-09 02:07:42 utc sandbox and i think my server has redis 2.0.4
2011-02-09 02:07:45 utc sandbox and redis 2.1.1
2011-02-09 02:07:56 utc sandbox server had issues with the initial persist
2011-02-09 02:08:08 utc sandbox which probably means it would fail the test you just wrote
2011-02-09 02:08:13 utc jmettraux ok
2011-02-09 02:18:50 utc sandbox i just ran it against a version of redis 2.0.4 and it seems to work as well
2011-02-09 02:18:59 utc sandbox now i'm just confused
2011-02-09 02:21:43 utc jmettraux I'm running the test from ruote/
2011-02-09 02:23:56 utc jmettraux retrying your combo
2011-02-09 02:25:02 utc jmettraux it's consistently failing for me
2011-02-09 02:25:50 utc sandbox i think this must be on my end because i can get the tests to run
2011-02-09 02:25:56 utc sandbox even when my redis connection is turned off
2011-02-09 02:26:01 utc jmettraux aaaaaaaaah
2011-02-09 02:26:16 utc jmettraux ruby test/unit/storage.rb -- --redis-backend
2011-02-09 02:26:38 utc sandbox oh i definitely forgot that last part
2011-02-09 02:27:33 utc sandbox okay it failed now
2011-02-09 02:27:35 utc sandbox sorry about that
2011-02-09 02:27:47 utc jmettraux no worries, I'm glad we're in sync
2011-02-09 02:27:49 utc sandbox exciting
2011-02-09 02:28:07 utc jmettraux I have to fix my ruote-dm
2011-02-09 02:33:53 utc jmettraux ACTION out for lunch
2011-02-09 03:34:55 utc jmettraux ACTION back
2011-02-09 07:27:54 utc tosch_le jmettraux: http://gist.github.com/818101
2011-02-09 07:28:04 utc jmettraux hello
2011-02-09 07:28:10 utc jmettraux "gist has been deleted"
2011-02-09 07:28:18 utc tosch_le jmettraux: http://gist.github.com/818100
2011-02-09 07:28:20 utc tosch_le sorry
2011-02-09 07:28:21 utc tosch_le hello!
2011-02-09 07:28:36 utc tosch_le thanks for rufus-scheduler. works like a charm now in its own process
2011-02-09 07:28:45 utc jmettraux sweet !
2011-02-09 07:29:17 utc jmettraux glad to help
2011-02-09 07:29:22 utc tosch_le :-)
2011-02-09 07:29:56 utc tosch_le sending a hup is less overhead than polling for changed schedules, so i went that way
2011-02-09 07:30:13 utc jmettraux neat
2011-02-09 07:30:36 utc jmettraux I just fixed a big fat bug in ruote-dm
2011-02-09 07:31:08 utc jmettraux I'd need a beer or a glass of wine
2011-02-09 07:33:50 utc tosch_le ACTION emits "Krusovice"
2011-02-09 07:34:02 utc jmettraux ACTION receives and happily consumes
2011-02-09 07:34:07 utc jmettraux prost !
2011-02-09 07:34:43 utc tosch_le prost!
2011-02-09 07:34:58 utc tosch_le a bit early for beer for me, though
2011-02-09 07:35:14 utc jmettraux virtual beer is OK :-)
2011-02-09 07:35:24 utc tosch_le did you already push the bug fix for ruote-dm?
2011-02-09 07:35:29 utc jmettraux yes
2011-02-09 07:36:25 utc jmettraux https://github.com/jmettraux/ruote-dm/commit/af8a07fab67bfa0ef6c0573e1176a94ba53bb318 line 147 was returning the current doc or nil
2011-02-09 07:37:13 utc jmettraux but for those storages, nil means "operation was successful", a doc means "operation was not successful, the current doc is this", true means "operation was not successful, because the doc is gone"
2011-02-09 07:37:38 utc tosch_le oups.
2011-02-09 07:37:50 utc tosch_le glad you've spotted that.
2011-02-09 07:37:53 utc jmettraux I'm not using false, since for Ruby, nil and false are synonyms in easy conditionals
2011-02-09 07:38:11 utc jmettraux nil = no news, good news
2011-02-09 07:39:22 utc jmettraux this test I concocted with sandbox this morning https://github.com/jmettraux/ruote/blob/master/test/unit/storage.rb#L281-314 revealed the issue
2011-02-09 07:39:36 utc jmettraux now I have to fix ruote-redis as well :-(
2011-02-09 10:14:02 utc jmettraux ruote-redis fixed
2011-02-09 10:14:11 utc tosch_le :-)
2011-02-09 10:14:30 utc jmettraux ropo: hello and welcome to #ruote
2011-02-09 10:15:19 utc ropo hi. i have a question regarding openwfe. the workflow is triggered with an eventCode=+TOU . why is that?
2011-02-09 10:16:06 utc jmettraux ropo, sorry, OpenWFE is dead since 2006-2007
2011-02-09 10:16:28 utc ropo i know. i was hoping that ruote is somehow similar
2011-02-09 10:16:55 utc jmettraux it is but it evolved a lot in 5 years
2011-02-09 10:17:16 utc jmettraux ACTION can't remember any "eventCode" or "+TOU"
2011-02-09 10:17:46 utc ropo i suspect that +TOU means touch. my problem is that the workflow is triggered when no user is working on it. i probably just have to ignore the +TOU events
2011-02-09 10:18:19 utc ropo ACTION also can't remember any he has done 5 years ago :)
2011-02-09 10:18:51 utc jmettraux ah probably
2011-02-09 10:19:26 utc ropo ok. i'll try ignoring these.
2011-02-09 10:19:29 utc ropo thanks for your time
2011-02-09 10:19:41 utc jmettraux sorry again
2011-02-09 10:19:48 utc ropo no prob. bye
2011-02-09 10:20:03 utc jmettraux bye
2011-02-09 10:21:26 utc jmettraux dpree: you too, hello and welcome to #ruote
2011-02-09 10:23:52 utc dpree thanks :)
2011-02-09 11:32:03 utc sandbox heloo again
2011-02-09 11:32:31 utc jmettraux sandbox: hello
2011-02-09 11:32:52 utc sandbox given your fix for ruote-redis, is the expected return for delete_schedule supposed to be similar to delete?
2011-02-09 11:33:25 utc jmettraux yes - double checking
2011-02-09 11:33:59 utc jmettraux yes
2011-02-09 11:34:31 utc sandbox it has the same call to @redis.del
2011-02-09 11:35:16 utc jmettraux ah wait, the reserve for msgs and schedules are the same
2011-02-09 11:35:53 utc jmettraux but yes, you're right
2011-02-09 11:36:28 utc sandbox okay so it doesn't really matter that it's making that direct call and returning it
2011-02-09 11:36:41 utc Defusal hi jmettraux
2011-02-09 11:37:08 utc Defusal i have a strange issue, #find_by_tag is returning an empty array as its first job, even when there are no jobs
2011-02-09 11:37:24 utc Defusal and still returns an empty array first if there are jobs
2011-02-09 11:37:40 utc Defusal meaning i cant just loop through the jobs found and unschedule
2011-02-09 11:37:47 utc Defusal any idea why it would do that?
2011-02-09 11:37:58 utc jmettraux Defusal: hi, can you wrap that in a single script please ?
2011-02-09 11:38:12 utc Defusal i can try i guess
2011-02-09 11:38:39 utc Defusal right now its happening my large application, ill see if i can make a simple test case
2011-02-09 11:39:05 utc jmettraux sandbox: had a look at the code, the result of delete_schedule isn't taken into account
2011-02-09 11:40:04 utc sandbox okay that's helpful, thanks again
2011-02-09 11:40:29 utc jmettraux sandbox: no, thanks to you
2011-02-09 11:41:54 utc jmettraux Defusal: thanks in advance
2011-02-09 11:42:34 utc Defusal jmettraux, the issue actually is most likely caused by my wrapper, not your code
2011-02-09 11:42:44 utc jmettraux ok
2011-02-09 11:42:47 utc Defusal i just realized i didnt account for find_by_tag with my wrapper
2011-02-09 11:42:54 utc Defusal thanks anyway
2011-02-09 11:43:01 utc jmettraux you're welcome
2011-02-09 11:49:10 utc Defusal jmettraux, it may be useful to have a #unschedule_by_tag method by the way
2011-02-09 11:51:46 utc jmettraux ok
2011-02-09 12:06:26 utc jmettraux Defusal: https://github.com/jmettraux/rufus-scheduler/commit/018a5c63f43bdd691d28b8ac8e1cbf68fb188e4f
2011-02-09 12:06:45 utc jmettraux spec is light though
2011-02-09 12:07:18 utc Defusal nice jmettraux, thanks