Unfortunately it is still hanging with the patch. I recompiled with -g and used dbx to see where it was hanging.
Please let me know if I can generate any further information and thanks for your help.
DBX info when hanging
(/opt/SUNWspro/bin/../WS6U1/bin/sparcv9/dbx) where
[1] _poll(0x512a70, 0x1, 0x493e0, 0x53c988, 0x206c8, 0x135e8c), at 0xff11d8c8
=>[2] PollVec::Block(this = 0x4e2558), line 100 in "PollVec.cc"
[3] SMTask::Block(), line 71 in "SMTask.h"
[4] WaitDone(exec = 0x5113d0), line 76 in "lftp.cc"
[5] main(argc = 2, argv = 0xffbef5e4), line 408 in "lftp.cc"
I dumped the local variables for each frame:
Frame 5
Current function is main
408 WaitDone(top_exec);
(/opt/SUNWspro/bin/../WS6U1/bin/sparcv9/dbx) dump
argv = 0xffbef5e4
exit_code = 0
task_count = 0
args = 0x50d2e0
argc = 2
cwd = 0x50ea70
home = 0x50d3d8 "/$HOME/.lftp"
(/opt/SUNWspro/bin/../WS6U1/bin/sparcv9/dbx) print *args
*args = {
ind = 4
}
(/opt/SUNWspro/bin/../WS6U1/bin/sparcv9/dbx) print argv[0]
argv[0] = 0xffbef728 "/var/tmp/lftp/lftp-3.4.2/bin/lftp"
(/opt/SUNWspro/bin/../WS6U1/bin/sparcv9/dbx) print argv[1]
argv[1] = 0xffbef74a "-d"
(/opt/SUNWspro/bin/../WS6U1/bin/sparcv9/dbx) print *cwd
*cwd = {
fd = 3
name = 0x511298 "/var/tmp/lftp/lftp-3.4.2/bin/BCAS"
}
Frame 4
Current function is WaitDone
76 SMTask::Block();
(/opt/SUNWspro/bin/../WS6U1/bin/sparcv9/dbx) dump
exec = 0x5113d0
(/opt/SUNWspro/bin/../WS6U1/bin/sparcv9/dbx) print *exec
*exec = {
cmd = (nil)
args = 0x50d2e0
output = (nil)
background = false
exit_code = 1
next_cmd = 0x540c41 "|| exit 8"
cmd_buf = 0x540c28 "put testfile -o testfile || exit 8"
partial_cmd = false
alias_field = 0
used_aliases = (nil)
condition = COND_ANY
feeder = 0x50d518
feeder_called = false
prev_exit_code = 0
builtin = BUILTIN_NONE
old_cwd = {
device_prefix_len = 0
path = 0x5137c0 "~"
is_file = false
url = (nil)
}
old_lcwd = (nil)
slot = (nil)
glob = (nil)
args_glob = (nil)
redirections = 0
next = (nil)
queue_feeder = (nil)
saved_session = (nil)
interactive = false
top_level = true
verbose = false
status_line = 0x5115b8
remote_completion = true
long_running = 30
csh_history = false
verify_host = true
verify_path = true
verify_path_cached = false
start_time = 1143567836
cwd = 0x50ea70
default_output = (nil)
last_bg = -1
wait_all = true
static_cmd_table = ()
dyn_cmd_table = (nil)
dyn_cmd_table_count = 0
chain = 0x5113d0
cwd_owner = 0x5113d0
}
(/opt/SUNWspro/bin/../WS6U1/bin/sparcv9/dbx) print *(exec->feeder)
*exec->feeder = {
saved_buf = 0x50eba0 ""
prev = (nil)
}
(/opt/SUNWspro/bin/../WS6U1/bin/sparcv9/dbx) print *(exec->args)
*exec->args = {
ind = 4
}
Frame 3
Current function is SMTask::Block
71 static void Block() { sched_total.Block(); }
(/opt/SUNWspro/bin/../WS6U1/bin/sparcv9/dbx) print sched_total
sched_total = {
fds = 0x512a70
fds_num = 1
fds_allocated = 16
timeout = 300000
}
(/opt/SUNWspro/bin/../WS6U1/bin/sparcv9/dbx) print *(sched_total.fds)
*sched_total.fds = {
fd = 4
events = 1
revents = 1
}
Frame 2
Current function is PollVec::Block
100 poll(fds,fds_num,timeout);
(/opt/SUNWspro/bin/../WS6U1/bin/sparcv9/dbx) dump
this = 0x4e2558
(/opt/SUNWspro/bin/../WS6U1/bin/sparcv9/dbx) print *this
*this = {
fds = 0x512a70
fds_num = 1
fds_allocated = 16
timeout = 300000
}
(/opt/SUNWspro/bin/../WS6U1/bin/sparcv9/dbx) print *(this->fds)
*this->fds = {
fd = 4
events = 1
revents = 1
}
Regards,
Adam Ringel
PE Application Support
703-903-3892 (w)
703-701-3685 (p)
| "Alexander
V. Lukyanov" <[EMAIL PROTECTED]>
Sent by: [EMAIL PROTECTED] 03/28/2006 04:59 AM |
|
On Mon, Mar 27, 2006 at 07:30:07PM -0500, Adam Ringel wrote:
> 19561: read(7, 0x002840D5, 48) = 48
> 19561: B7 ?BC85DA04 V k v\n11 p * ! y83 rC2E5A4 "C1F5948DFE0EF7 k ,87 j
> 19561: E9AC98D0F }83 = 007\t9DDFF4DB10
> 19561: write(7, 0x00292200, 59) = 59
> 19561: 140301\00101160301\0 08816 ,8A qF518AFA5 I uB99EFA j 7F596 ?87A1
> 19561: | D > o "869ECF ? p9683B3D7 nE680 71C18ECD7 a O8FEB l
> 19561: read(4, 0x00251F30, 5) Err#11 EAGAIN
> 19561: poll(0x00245820, 1, 300000) (sleeping...)
Please test attached patch. I'm not sure yet what causes the hang, but this
can be a reason.
--
Alexander.
diff
Description: Binary data
