Hi,
DMTCP v1.2.7 does not seem to work with the old netcat from:
http://downloads.sourceforge.net/project/nc110/
The issue seems to be with the select system call. A quick search for
dmtcp and select did not yield any clues. For other versions of netcat
that use poll, DMTCP seems to do fine.
Below is a script I've used to reproduce the problem on a few machines.
The output shows that the two netcats are in sys_select() before the
checkpoint and in sys_read() after the checkpoint. After the
checkpoint, data stops going across the connection. I.e., the
"abcdefghijabcdefghij" string was not received and written out by the
client netcat.
Is this a bug in DMTCP? Is there an easy workaround that could still
use nc110?
--Richard
=============
OUTPUT:
=============
time=1
time=2
01234567890123456789
time=3
---5788---
[<00000000>] poll_schedule_timeout+0x3e/0x60
[<00000000>] do_select+0x47e/0x570
[<00000000>] core_sys_select+0x15c/0x2b0
[<00000000>] sys_select+0x84/0xb0
[<00000000>] syscall_call+0x7/0xb
[<00000000>] 0xffffffff
---5890---
[<00000000>] poll_schedule_timeout+0x3e/0x60
[<00000000>] do_select+0x47e/0x570
[<00000000>] core_sys_select+0x15c/0x2b0
[<00000000>] sys_select+0x84/0xb0
[<00000000>] syscall_call+0x7/0xb
[<00000000>] 0xffffffff
time=4
DMTCP-1.2.7 (+ MTCP), Copyright (C) 2006-2011 Jason Ansel, Michael Rieker,
Kapil Arya, and Gene Cooperman
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions; see COPYING file for details.
(Use flag "--quiet" to hide this message.)
time=5
time=6
---5788---
[<00000000>] sk_wait_data+0xa7/0xb0
[<00000000>] tcp_recvmsg+0x4b2/0xa10
[<00000000>] inet_recvmsg+0x73/0x90
[<00000000>] do_sock_read.isra.13+0xcb/0xe0
[<00000000>] sock_aio_read+0x6c/0x80
[<00000000>] do_sync_read+0xa4/0xe0
[<00000000>] vfs_read+0x149/0x160
[<00000000>] sys_read+0x3d/0x70
[<00000000>] syscall_call+0x7/0xb
[<00000000>] 0xffffffff
---5890---
[<00000000>] sk_wait_data+0xa7/0xb0
[<00000000>] tcp_recvmsg+0x4b2/0xa10
[<00000000>] inet_recvmsg+0x73/0x90
[<00000000>] do_sock_read.isra.13+0xcb/0xe0
[<00000000>] sock_aio_read+0x6c/0x80
[<00000000>] do_sync_read+0xa4/0xe0
[<00000000>] vfs_read+0x149/0x160
[<00000000>] sys_read+0x3d/0x70
[<00000000>] syscall_call+0x7/0xb
[<00000000>] 0xffffffff
time=7
time=8
time=9
time=10
time=11
time=12
time=13
time=14
time=15
time=16
time=17
time=18
time=19
time=20
time=21
time=22
time=23
time=24
time=25
time=26
time=27
time=28
time=29
=============
THE SCRIPT:
=============
[ -d cache-downloads ] || mkdir cache-downloads
cd cache-downloads
[ -f dmtcp-1.2.7.tar.gz ] || wget
http://downloads.sourceforge.net/project/dmtcp/dmtcp/1.2.7/dmtcp-1.2.7.tar.gz
[ -f nc110.tgz ] || wget
http://downloads.sourceforge.net/project/nc110/unix%20netcat%201.10%20by%20_Hobbit_/%5BUnnamed%20release%5D/nc110.tgz
cd ..
if ! [ -d nc110 ]
then
(
mkdir nc110
cd nc110
tar xzvf ../cache-downloads/nc110.tgz
mv netcat.c netcat.c.org
echo '#include "resolv.h"' >netcat.c
cat netcat.c.org >>netcat.c
)
fi
if ! [ -d dmtcp-1.2.7 ]
then
tar xzvf cache-downloads/dmtcp-1.2.7.tar.gz
fi
if ! [ -f nc110/nc ]
then
(
cd nc110
# important! turn off the default static build
make linux STATIC=
)
fi
if ! [ -f dmtcp-1.2.7/bin/dmtcp_checkpoint ]
then
(
cd dmtcp-1.2.7
./configure
make
)
fi
sleep 1
killall dmtcp_coordinator || true
sleep 1
xterm -e 'dmtcp-1.2.7/bin/dmtcp_coordinator' </dev/null >/dev/null 2>&1 &
sleep 1
echo >serverscript.sh "
( sleep 2
echo 01234567890123456789
sleep 5
echo abcdefghijabcdefghij ) | nc110/nc -l -p 7777
"
xterm -e ./dmtcp-1.2.7/bin/dmtcp_checkpoint bash -x serverscript.sh
</dev/null >/dev/null 2>&1 &
sleep 1
./dmtcp-1.2.7/bin/dmtcp_checkpoint nc110/nc -w 10 localhost 7777 </dev/null &
for i in $(seq 1 30)
do
echo time=$i
[ "$i" = "4" ] && ./dmtcp-1.2.7/bin/dmtcp_command c
[ "$i" = "3" ] || [ "$i" = "6" ] && {
for i in $(pgrep -f nc110)
do
echo ---$i---
cat /proc/$i/stack
done
}
sleep 1
done
------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:
Build for Windows Store.
http://p.sf.net/sfu/windows-dev2dev
_______________________________________________
Dmtcp-forum mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dmtcp-forum