More on this problem which I have been looking
at for a full day.

I figured that given all the changes that have been
recently made to the wrapper-manufacturing code, it
would not make too much sense to try to find a problem
in the old code.

So I grabbed the 3.0 master and tired it.  As I mentioned
it also had an infinite loop but apparently a much smaller tighter
one.

As I understand it, the idea is that code with names like
_real_free ultimately gets associated withe the genuine
free in glibc2 (I dind't examine exactly how) and then the
user's program calls your free which does what it has to to keep
track of things, and then passes the call on.

But it simply looks like on my system, the wrapper-
free is not actually calling the real-free, or if it
does, that itself soon calls the wrapper-free in turn.
A few print statements I placed in the code indicated
clearly that the wrapper-free gets to a point
where it never returns from its call to the
real-free.

So, to test, I simply commented out everything in the
wrapper-free, thinking that if free is used
sensibly, this might actually "work" for
a little while since the freed stuff would
simply  become uncollectable garbage.

And, it did work.  In fact, I was able to
load 40,000 lines of dense ocaml into an
interactive ocaml, checkpoint it, and then start
it up and continue on.  The image of the
saved process was 93M compared to 71M for
the same thing saved with an earlier version
on a system where that version worked.

What do you think I should do next?  I don't
understand the code of course, but hopefully
there is something I can do to help.  Since
this appears only to happen on my one machine,
maybe there is something I could look at there.
It is like somehow the glib library is not
being dynamically linked in at the right time,
perhaps some environment variables are off
or not set correctly.

Too tired now but tomorrow I will build it
again with the code back in the wrapper-
free, and save a stack trace in gdb to send on.

Another thing now is this version seems to be
back for me to where some earlier versions were,
which is that cntrl-c is not passed back to
the program for it to handle it, but causes
the program to simply terminate, which is not what
one wants for an interactive shell.


------------------------------------------------------------------------------
Mobile security can be enabling, not merely restricting. Employees who
bring their own devices (BYOD) to work are irked by the imposition of MDM
restrictions. Mobile Device Manager Plus allows you to control only the
apps on BYO-devices by containerizing them, leaving personal data untouched!
https://ad.doubleclick.net/ddm/clk/304595813;131938128;j
_______________________________________________
Dmtcp-forum mailing list
Dmtcp-forum@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dmtcp-forum

Reply via email to