[torquedev] OS X outstanding issues
Garrick
garrick at usc.edu
Wed Jan 14 21:30:31 MST 2009
Wordexp() is called more than once and I expect wordfree() is
necessary between calls.
HPCC/Linux Systems Admin
On Jan 14, 2009, at 7:43 PM, Glen Beane <glen.beane at gmail.com> wrote:
> On Wed, Jan 14, 2009 at 9:45 PM, Glen Beane <glen.beane at gmail.com>
> wrote:
>> On Wed, Jan 14, 2009 at 9:01 PM, Garrick Staples <garrick at usc.edu>
>> wrote:
>>> On Wed, Jan 14, 2009 at 07:50:48PM -0500, Glen Beane alleged:
>>>> On Tue, Jan 13, 2009 at 8:14 PM, Garrick Staples
>>>> <garrick at usc.edu> wrote:
>>>>
>>>>> Glen and I went back and forth on this one. I was having a hard
>>>>> time
>>>>> duplicating the problem and found that it seemed to depend on
>>>>> various values of
>>>>> $LANG. Then I found that using a pointer instead of an array
>>>>> for the first
>>>>> argument of wordexp() doesn't trigger the problem.
>>>>>
>>>>> Whatever is going on inside of wordexp() (or the compiler)
>>>>> depends on how
>>>>> the first arg is aligned. Turns out, the compiler is aligning
>>>>> arrays
>>>>> differently than pointers.
>>>>>
>>>>> It will be a fairly small patch to convert our usage of arrays
>>>>> to pointers and
>>>>> this won't be a problem any more. I sent a first pass to Glen.
>>>>
>>>>
>>>> Unfortunately the problem is still occurring, but it doesn't
>>>> happen as
>>>> regularly.
>>>
>>> Maybe we fixed that instance of the problem and it is now
>>> manifesting itself elsewhere.
>>
>> No we didn't, it is still in req_cpyfile. See the following
>> backtrace. I'm pretty sure the problem is in wordexp/wordfree, the
>> change just changed the frequency that it is triggered.
>>
>> I applied your patch to trunk, but the line numbers will be off by
>> one
>> from yours since I added a sleep() after the
>>
>> /* child */
>>
>> /* now running as user in the user's home directory */
>>
>> comment lines so that I would have a chance to attach to the child
>> with gdb before it exits
>>
>>
>>
>> Breakpoint 1, 0x917594a9 in malloc_error_break ()
>> (gdb) bt
>> #0 0x917594a9 in malloc_error_break ()
>> #1 0x91754497 in szone_error ()
>> #2 0x9167e463 in szone_free ()
>> #3 0x9167e2cd in free ()
>> #4 0x9170da0f in wordfree ()
>> #5 0x000206dc in req_cpyfile (preq=0x809e00) at requests.c:3441
>> #6 0x000303f7 in process_request (sfds=9) at ../server/
>> process_request.c:644
>> #7 0x000a0065 in wait_request (waittime=0, SState=0x0) at
>> ../Libnet/net_server.c:475
>> #8 0x00017ad2 in main_loop () at mom_main.c:7831
>> #9 0x00017f05 in main (argc=1, argv=0xbffffc88) at mom_main.c:7932
>
>
>
> This is in a child processes so we aren't worried about a memory
> leak... why don't we try just commenting out wordfree() ?
> _______________________________________________
> torquedev mailing list
> torquedev at supercluster.org
> http://www.supercluster.org/mailman/listinfo/torquedev
More information about the torquedev
mailing list