Bug 668432 - Executing wallaby load command without an argument causes the process to hang
Summary: Executing wallaby load command without an argument causes the process to hang
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Red Hat Enterprise MRG
Classification: Red Hat
Component: wallaby-utils
Version: 1.3
Hardware: Unspecified
OS: Unspecified
medium
medium
Target Milestone: ---
: ---
Assignee: Will Benton
QA Contact: Petr Matousek
URL:
Whiteboard:
Depends On: 635628 668797 668798 668799 668800 668802 668803
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-01-10 14:08 UTC by Petr Matousek
Modified: 2011-01-24 12:44 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2011-01-10 14:39:05 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Bugzilla 668459 0 low CLOSED "wallaby load" help message is unclear 2021-02-22 00:41:40 UTC

Internal Links: 668459

Description Petr Matousek 2011-01-10 14:08:05 UTC
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

Comment 1 Will Benton 2011-01-10 14:39:05 UTC
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.)


Note You need to log in before you can comment on or make changes to this bug.