it will have a bug when checkpoint kvasir-dtrace(contained in the tool of daikon):
***************************************************************************************
grace@grace:~/install/dmtcp/test$ gcc -gdwarf-2 -o dmtcpaware2 dmtcpaware2.c /usr/local/lib/libdmtcpaware.a
grace@grace:~/install/dmtcp/test$ dmtcp_checkpoint kvasir-dtrace ./dmtcpaware2
DMTCP/MTCP Copyright (C) 2006-2010 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 "-q" to hide this message.)
==2001== kvasir-4.6.4, C/C++ Language Front-End for Daikon with DynComp comparability analysis tool.
==2001== Copyright (C) 2004-2006, Philip Guo, MIT CSAIL Program Analysis Group
==2001== Using Valgrind-3.6.0.SVN and LibVEX; rerun with -h for copyright info
==2001== Command: ./dmtcpaware2
==2001==
==2001== Syscall param write(buf) points to uninitialised byte(s)
==2001== at 0x4000832: ??? (in /lib/ld-2.11.1.so)
==2001== by 0x40A4D60: jalib::JSocket::writeAll(char const*, unsigned int) (jsocket.cpp:302)
==2001== by 0x404F3D4: dmtcp::DmtcpCoordinatorAPI::sendCoordinatorHandshake(std::basic_string<char, std::char_traits<char>, dmtcp::DmtcpAlloc<char> > const&, dmtcp::UniquePid, int, dmtcp::DmtcpMessageType) (jsocket.h:92)
==2001== by 0x404F63D: dmtcp::DmtcpCoordinatorAPI::connectToCoordinatorWithHandshake() (dmtcpcoordinatorapi.cpp:109)
==2001== by 0x4049DCF: dmtcp::DmtcpWorker::DmtcpWorker(bool) (dmtcpworker.cpp:417)
==2001== by 0x4057179: global constructors keyed to workerhijack.cpp (workerhijack.cpp:33)
==2001== by 0x40BE51C: ??? (in /usr/local/lib/dmtcp/dmtcphijack.so)
==2001== by 0x403EABF: ??? (in /usr/local/lib/dmtcp/dmtcphijack.so)
==2001== by 0x400DBBB: ??? (in /lib/ld-2.11.1.so)
==2001== by 0x400DCD8: ??? (in /lib/ld-2.11.1.so)
==2001== by 0x400088E: ??? (in /lib/ld-2.11.1.so)
==2001== Address 0xbef33b64 is on thread 1's stack
==2001==
==2001== Thread 2:
==2001== Syscall param write(buf) points to uninitialised byte(s)
==2001== at 0x4000832: ??? (in /lib/ld-2.11.1.so)
==2001== by 0x40A4D60: jalib::JSocket::writeAll(char const*, unsigned int) (jsocket.cpp:302)
==2001== by 0x4043846: dmtcp::DmtcpWorker::waitForCoordinatorMsg(std::basic_string<char, std::char_traits<char>, dmtcp::DmtcpAlloc<char> >, dmtcp::DmtcpMessageType) (jsocket.h:92)
==2001== by 0x404680A: dmtcp::DmtcpWorker::waitForStage1Suspend() (dmtcpworker.cpp:803)
==2001== by 0x4053C23: callbackSleepBetweenCheckpoint(int) (mtcpinterface.cpp:176)
==2001== by 0x47A76D3: checkpointhread (mtcp.c:1689)
==2001== by 0x425096D: start_thread (in /lib/tls/i686/cmov/libpthread-2.11.1.so)
==2001== by 0x4054C76: thread_start(void*) (mtcpinterface.cpp:620)
==2001== by 0x47A6C7F: threadcloned (mtcp.c:1168)
==2001== by 0x41BAA4D: clone (in /lib/tls/i686/cmov/libc-2.11.1.so)
==2001== Address 0x49c2c54 is on thread 2's stack
==2001==
working... 1 (status: 0 checkpoints / 0 restarts)
==2001==
==2001== Process terminating with default action of signal 11 (SIGSEGV)
==2001== Bad permissions for mapped region at address 0x4240000
==2001== at 0x8048956: dmtcpGetLocalStatus (dmtcpaware.c:130)
==2001== by 0x4027951: main (dyncomp_wrappers.c:61)
==2001== by 0x4103BD5: (below main) (in /lib/tls/i686/cmov/libc-2.11.1.so)
==2001==
==2001== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
/home/grace/install/daikon/bin/kvasir-dtrace: line 2: 2001 killed $DAIKONDIR/kvasir/inst/bin/valgrind --tool=fjalar "$@"
grace@grace:~/install/dmtcp/test$
**************************************************************************************
If not use the *dmtcp_checkpoint*, kvasir-dtrace will works well. Then, why?
I'm waiting in hope for your advices.
Thanks again.
Hi. Sorry for the delay in responding. There are two answers to your bug report:
(1) I see a reference to valgrind. Valgrind is on our radat. But we haven't had a chance to seriously look at the issues necessary to support it. (Valgrind does some very low-level things.) If you'd like to tell us more about your application off-line, we could be persuaded to raise the priority of supporting valgrind. :-) For example, feel free to write to gene@ccs.neu.edu .
(2) Having said that, your application is SEGFAULTing. DMTCP should not ever be segfaulting. This is a bug that we would like to fix immediately. Is there a chance that you can send us your software so that we could reproduce it locally? Other alternatives might be VNC, guest account at your site, VM with your software, etc. We're eager to find out more about this. Please let us know.
Thanks, - Gene
Thanks for your reply:). kvasir-dtrace(contained in the tool of daikon) can be getted from the web sit (http://groups.csail.mit.edu/pag/daikon/download/daikon.tar.gz). The example appliation *dmtcpaware2* tested by kvasir-dtrace is just the test example given by the DMTCP.:).
I suspect that this is going to be difficult to diagnose and fix. At the top, kvasir-dtrace is reporting:
Using Valgrind-3.6.0.SVN and LibVEX
Because Valgrind does some low-level things, we are aware that DMTCP and Valgrind are currently incompatible.
So, I can't offer too much hope. But if you'd like me to look further, the most efficient thing would be to talk on the phone, so I can find out exactly how you compiled kvasir-dtrace, and so on I could call you or vice versa, if we arrange a common time. Please write to gene@ccs.neu.edu if you would like to try diagnosing this further, together. But I already see Valgrind diagnosing the low-level system call wrappers of DMTCP in the output that you display. So, right now, I'm not too hopeful of success, since both Valgrind and DMTCP will each want to take control at a very low level. Best wishes, - Gene
Sorry for the delay in responding.
Can you provide us some more information about kvasir-dtrace and hopefully we can nail it down?
-- Kapil