Description of problem: When the wallaby load command is supplied without the SNAPSHOT file given as an argument, the wallaby process hangs. This was seen on Rhel 5.5 i686, x86_64. Version-Release number of selected component (if applicable): wallaby-utils-0.10.0-2.el5 How reproducible: 100% Steps to Reproduce: 1. execute "wallaby load" command (do not specify the SNAPSHOT file) 2. See additional info Actual results: "wallaby load" command causes the process to hang. Expected results: An error message should be printed out informing the user that an argument must be given. Additional info: (gdb) info threads 5 Thread 0xb7d36b90 (LWP 2672) 0x009e1402 in __kernel_vsyscall () 4 Thread 0xb7335b90 (LWP 2673) 0x009e1402 in __kernel_vsyscall () 3 Thread 0xb6934b90 (LWP 2674) 0x009e1402 in __kernel_vsyscall () 2 Thread 0xb5f33b90 (LWP 2675) 0x009e1402 in __kernel_vsyscall () * 1 Thread 0xb7f7c6c0 (LWP 2671) 0x009e1402 in __kernel_vsyscall () (gdb) thread apply all bt Thread 5 (Thread 0xb7d36b90 (LWP 2672)): #0 0x009e1402 in __kernel_vsyscall () #1 0x00aa32f6 in nanosleep () from /lib/libpthread.so.0 #2 0x00b01930 in thread_timer (dummy=0x0) at eval.c:11673 #3 0x00a9b832 in start_thread () from /lib/libpthread.so.0 #4 0x001e1f6e in clone () from /lib/libc.so.6 Thread 4 (Thread 0xb7335b90 (LWP 2673)): #0 0x009e1402 in __kernel_vsyscall () #1 0x00a9fbc5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #2 0x00866dcd in wait (this=0x934d5f0) at ../include/qpid/sys/posix/Condition.h:63 #3 qmf::engine::ResilientConnectionImpl::run (this=0x934d5f0) at qmf/engine/ResilientConnection.cpp:366 #4 0x0059f8e1 in qpid::sys::(anonymous namespace)::runRunnable (p=0x934d5f0) at qpid/sys/posix/Thread.cpp:35 #5 0x00a9b832 in start_thread () from /lib/libpthread.so.0 #6 0x001e1f6e in clone () from /lib/libc.so.6 Thread 3 (Thread 0xb6934b90 (LWP 2674)): #0 0x009e1402 in __kernel_vsyscall () #1 0x001e25e6 in epoll_wait () from /lib/libc.so.6 #2 0x005a980a in qpid::sys::Poller::wait (this=0x93511c8, timeout=...) at qpid/sys/epoll/EpollPoller.cpp:563 #3 0x005aa433 in qpid::sys::Poller::run (this=0x93511c8) at qpid/sys/epoll/EpollPoller.cpp:515 #4 0x0059f8e1 in qpid::sys::(anonymous namespace)::runRunnable (p=0x93511c8) at qpid/sys/posix/Thread.cpp:35 #5 0x00a9b832 in start_thread () from /lib/libpthread.so.0 #6 0x001e1f6e in clone () from /lib/libc.so.6 Thread 2 (Thread 0xb5f33b90 (LWP 2675)): #0 0x009e1402 in __kernel_vsyscall () #1 0x00a9fbc5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #2 0x007977bc in pop (this=0x9348020, timeout=...) at ../include/qpid/sys/posix/Condition.h:63 #3 qpid::sys::BlockingQueue<boost::shared_ptr<qpid::framing::FrameSet> >::pop (this=0x9348020, timeout=...) at qpid/sys/BlockingQueue.h:71 #4 0x00793db7 in qpid::client::Dispatcher::run (this=0x93481e4) at qpid/client/Dispatcher.cpp:80 #5 0x007c6018 in qpid::client::SubscriptionManagerImpl::run (this=0x93481c0) at qpid/client/SubscriptionManagerImpl.cpp:98 #6 0x007c4044 in qpid::client::SubscriptionManager::run (this=0x934ecb8) at qpid/client/SubscriptionManager.cpp:60 ---Type <return> to continue, or q <return> to quit--- #7 0x008643a8 in qmf::engine::RCSession::run (this=0x9347cb8) at qmf/engine/ResilientConnection.cpp:161 #8 0x0059f8e1 in qpid::sys::(anonymous namespace)::runRunnable (p=0x9347cbc) at qpid/sys/posix/Thread.cpp:35 #9 0x00a9b832 in start_thread () from /lib/libpthread.so.0 #10 0x001e1f6e in clone () from /lib/libc.so.6 Thread 1 (Thread 0xb7f7c6c0 (LWP 2671)): #0 0x009e1402 in __kernel_vsyscall () #1 0x001dab31 in select () from /lib/libc.so.6 #2 0x00b06709 in rb_thread_schedule () at eval.c:10638 #3 0x00b073ce in rb_thread_wait_for (time=...) at eval.c:10865 #4 0x00b537bd in rb_f_sleep (argc=1, argv=0xbff44920) at process.c:1579 #5 0x00b00de8 in call_cfunc (func=0xb53760 <rb_f_sleep>, recv=3084890040, len=-1074510576, argc=-1074510704, argv=0xbff44920) at eval.c:5654 #6 0x00b084ab in rb_call0 (klass=3086466200, recv=3084890040, id=8985, oid=8985, argc=0, argv=0xbff44920, body=0xb7f6e23c, flags=0) at eval.c:5810 #7 0x00b091c8 in rb_call (klass=3086466200, recv=3084890040, mid=8985, argc=1, argv=0xbff44920, scope=1) at eval.c:6048 #8 0x00b10f62 in rb_eval (self=<value optimized out>, n=<value optimized out>) at eval.c:3458 #9 0x00b13a8c in rb_yield_0 (val=3084750180, self=3084890040, klass=<value optimized out>, flags=1, avalue=2) at eval.c:4987 #10 0x00b0c02e in rb_thread_start_0 (fn=0xb14180 <rb_thread_yield>, arg=0xb7dd8d64, th=0x9635260) at eval.c:11800 #11 0x00b009e7 in call_cfunc (func=0xb0c090 <rb_thread_start>, recv=3086450620, len=<value optimized out>, argc=0, argv=0x0) at eval.c:5651 #12 0x00b084ab in rb_call0 (klass=3086450600, recv=3086450620, id=5033, oid=5033, argc=154543176, argv=0x0, body=0xb7f77f30, flags=0) at eval.c:5810 #13 0x00b091c8 in rb_call (klass=3086450600, recv=3086450620, mid=5033, argc=0, argv=0x0, scope=0) at eval.c:6048 #14 0x00b10e46 in rb_eval (self=3084890040, n=<value optimized out>) at eval.c:3443 #15 0x00b1222c in rb_eval (self=3084890040, n=<value optimized out>) at eval.c:3173 #16 0x00b10ba0 in rb_eval (self=3084890040, n=<value optimized out>) at eval.c:3387 #17 0x00b08d7b in rb_call0 (klass=3086131200, recv=3084890040, id=17025, oid=17025, argc=0, argv=0xbff464c4, body=0xb7f2cd00, flags=2) at eval.c:5954 #18 0x00b091c8 in rb_call (klass=3086131200, recv=3084890040, mid=17025, argc=1, argv=0xbff464c0, scope=1) at eval.c:6048 #19 0x00b10f62 in rb_eval (self=<value optimized out>, n=<value optimized out>) at eval.c:3458 #20 0x00b0f670 in rb_eval (self=3084890040, n=<value optimized out>) at eval.c:3624 #21 0x00b08d7b in rb_call0 (klass=3086131200, recv=3084890040, id=9017, oid=9017, argc=0, argv=0xbff46fc4, body=0xb7f2e9e8, flags=0) at eval.c:5954 ---Type <return> to continue, or q <return> to quit--- #22 0x00b091c8 in rb_call (klass=3086131200, recv=3084890040, mid=9017, argc=1, argv=0xbff46fc0, scope=0) at eval.c:6048 #23 0x00b10e46 in rb_eval (self=3084890340, n=<value optimized out>) at eval.c:3443 #24 0x00b13a8c in rb_yield_0 (val=6, self=3084890340, klass=<value optimized out>, flags=0, avalue=0) at eval.c:4987 #25 0x00b10bef in rb_eval (self=3084890340, n=<value optimized out>) at eval.c:3248 #26 0x00b11bdc in rb_eval (self=3084890340, n=<value optimized out>) at eval.c:3307 #27 0x00b08d7b in rb_call0 (klass=3086131280, recv=3084890340, id=11801, oid=17169, argc=0, argv=0x0, body=0xb7f2ba68, flags=0) at eval.c:5954 #28 0x00b091c8 in rb_call (klass=3086131280, recv=3084890340, mid=11801, argc=0, argv=0x0, scope=1) at eval.c:6048 #29 0x00b10f62 in rb_eval (self=<value optimized out>, n=<value optimized out>) at eval.c:3458 #30 0x00b1222c in rb_eval (self=3084890340, n=<value optimized out>) at eval.c:3173 #31 0x00b1101a in rb_eval (self=3084890340, n=<value optimized out>) at eval.c:3097 #32 0x00b08d7b in rb_call0 (klass=3086115040, recv=3084890340, id=13249, oid=13249, argc=0, argv=0x0, body=0xb7f452d8, flags=0) at eval.c:5954 #33 0x00b091c8 in rb_call (klass=3086115040, recv=3084890340, mid=13249, argc=0, argv=0x0, scope=2) at eval.c:6048 #34 0x00b10b87 in rb_eval (self=<value optimized out>, n=<value optimized out>) at eval.c:3464 #35 0x00b13a8c in rb_yield_0 (val=3084890020, self=3084890340, klass=<value optimized out>, flags=1, avalue=2) at eval.c:4987 #36 0x00b0c02e in rb_thread_start_0 (fn=0xb14180 <rb_thread_yield>, arg=0xb7dfafa4, th=0x93454e8) at eval.c:11800 #37 0x00b009e7 in call_cfunc (func=0xb0c100 <rb_thread_initialize>, recv=3084890080, len=<value optimized out>, argc=0, argv=0x0) at eval.c:5651 #38 0x00b084ab in rb_call0 (klass=3086450620, recv=3084890080, id=2953, oid=2953, argc=1, argv=0x0, body=0xb7f77f58, flags=0) at eval.c:5810 #39 0x00b091c8 in rb_call (klass=3086450620, recv=3084890080, mid=2953, argc=0, argv=0x0, scope=1) at eval.c:6048 #40 0x00b09497 in rb_obj_call_init (obj=3084890080, argc=0, argv=0x0) at eval.c:7529 #41 0x00b094f2 in rb_thread_s_new (argc=0, argv=0x0, klass=3086450620) at eval.c:11913 #42 0x00b00de8 in call_cfunc (func=0xb094b0 <rb_thread_s_new>, recv=3086450620, len=-1074510576, argc=-1074510704, argv=0x0) at eval.c:5654 #43 0x00b084ab in rb_call0 (klass=3086450600, recv=3086450620, id=3337, oid=3337, argc=0, argv=0x0, body=0xb7f77f80, flags=0) at eval.c:5810 #44 0x00b091c8 in rb_call (klass=3086450600, recv=3086450620, mid=3337, argc=0, argv=0x0, scope=0) at eval.c:6048 #45 0x00b10e46 in rb_eval (self=3084890340, n=<value optimized out>) at eval.c:3443 #46 0x00b1222c in rb_eval (self=3084890340, n=<value optimized out>) at eval.c:3173 #47 0x00b0f384 in rb_eval (self=3084890340, n=<value optimized out>) at eval.c:3644 #48 0x00b08d7b in rb_call0 (klass=3086115040, recv=3084890340, id=2953, oid=2953, argc=0, argv=0x0, ---Type <return> to continue, or q <return> to quit--- body=0xb7f4a5f8, flags=2) at eval.c:5954 #49 0x00b091c8 in rb_call (klass=3086115040, recv=3084890340, mid=2953, argc=0, argv=0x0, scope=1) at eval.c:6048 #50 0x00b09497 in rb_obj_call_init (obj=3084890340, argc=0, argv=0x0) at eval.c:7529 #51 0x00b3717a in rb_class_new_instance (argc=0, argv=0x0, klass=3086115040) at object.c:1567 #52 0x00b00de8 in call_cfunc (func=0xb37140 <rb_class_new_instance>, recv=3086115040, len=-1074510576, argc=-1074510704, argv=0x0) at eval.c:5654 #53 0x00b084ab in rb_call0 (klass=3086466300, recv=3086115040, id=3337, oid=3337, argc=-1208520376, argv=0x0, body=0xb7f7ab18, flags=0) at eval.c:5810 #54 0x00b091c8 in rb_call (klass=3086466300, recv=3086115040, mid=3337, argc=0, argv=0x0, scope=0) at eval.c:6048 #55 0x00b10e46 in rb_eval (self=3085320640, n=<value optimized out>) at eval.c:3443 #56 0x00b0f32a in rb_eval (self=3085320640, n=<value optimized out>) at eval.c:3634 #57 0x00b13a8c in rb_yield_0 (val=3084890560, self=3085320640, klass=<value optimized out>, flags=0, avalue=2) at eval.c:4987 #58 0x00b14668 in proc_invoke (proc=3084897540, args=3084890560, self=6, klass=<value optimized out>) at eval.c:8515 #59 0x00b009e7 in call_cfunc (func=0xb14750 <proc_call>, recv=3084897540, len=<value optimized out>, argc=0, argv=0x0) at eval.c:5651 #60 0x00b084ab in rb_call0 (klass=3086402620, recv=3084897540, id=5217, oid=5217, argc=4, argv=0x0, body=0xb7f6c388, flags=0) at eval.c:5810 #61 0x00b091c8 in rb_call (klass=3086402620, recv=3084897540, mid=5217, argc=0, argv=0x0, scope=0) at eval.c:6048 #62 0x00b10e46 in rb_eval (self=3084897440, n=<value optimized out>) at eval.c:3443 #63 0x00b0f384 in rb_eval (self=3084897440, n=<value optimized out>) at eval.c:3644 #64 0x00b08d7b in rb_call0 (klass=3085320560, recv=3084897440, id=6841, oid=6841, argc=0, argv=0x0, body=0xb7e6479c, flags=2) at eval.c:5954 #65 0x00b091c8 in rb_call (klass=3085320560, recv=3084897440, mid=6841, argc=0, argv=0x0, scope=2) at eval.c:6048 #66 0x00b10b87 in rb_eval (self=<value optimized out>, n=<value optimized out>) at eval.c:3464 #67 0x00b10d61 in rb_eval (self=3084897440, n=<value optimized out>) at eval.c:3437 #68 0x00b08d7b in rb_call0 (klass=3085002940, recv=3084897440, id=24017, oid=24017, argc=0, argv=0x0, body=0xb7e17438, flags=0) at eval.c:5954 #69 0x00b091c8 in rb_call (klass=3085002940, recv=3084897440, mid=24017, argc=0, argv=0x0, scope=2) at eval.c:6048 #70 0x00b10b87 in rb_eval (self=<value optimized out>, n=<value optimized out>) at eval.c:3464 #71 0x00b1191e in rb_eval (self=3084897440, n=<value optimized out>) at eval.c:3259 #72 0x00b08d7b in rb_call0 (klass=3085320560, recv=3084897440, id=5081, oid=5081, argc=0, argv=0xbff4e4d4, body=0xb7e65d40, flags=0) at eval.c:5954 #73 0x00b091c8 in rb_call (klass=3085320560, recv=3084897440, mid=5081, argc=1, argv=0xbff4e4d0, scope=0) at eval.c:6048 ---Type <return> to continue, or q <return> to quit--- #74 0x00b10e46 in rb_eval (self=3085320640, n=<value optimized out>) at eval.c:3443 #75 0x00b0ec8f in rb_eval (self=3085320640, n=<value optimized out>) at eval.c:3610 #76 0x00b10eea in rb_eval (self=3085320640, n=<value optimized out>) at eval.c:3453 #77 0x00b1191e in rb_eval (self=3085320640, n=<value optimized out>) at eval.c:3259 #78 0x00b08d7b in rb_call0 (klass=3085319160, recv=3085320640, id=5081, oid=5081, argc=0, argv=0xbff4f834, body=0xb7f6847c, flags=0) at eval.c:5954 #79 0x00b091c8 in rb_call (klass=3085319160, recv=3085320640, mid=5081, argc=1, argv=0xbff4f830, scope=0) at eval.c:6048 #80 0x00b10e46 in rb_eval (self=3086461420, n=<value optimized out>) at eval.c:3443 #81 0x00b16a17 in ruby_exec_internal () at eval.c:1604 #82 0x00b16a62 in ruby_exec () at eval.c:1624 #83 0x00b16a9f in ruby_run () at eval.c:1634 #84 0x08048622 in main (argc=65, argv=0x0, envp=0x0) at main.c:46
It's not hanging so much as it's blocking on stdin, where it's expecting an input file. (Try, e.g., "wallaby load < condor-base-db.snapshot" to see for yourself.)