[Pvfs2-developers] bmi-tcp doubt

Phil Carns carns at mcs.anl.gov
Thu Nov 20 14:11:08 EST 2008


For an immediate solution you can just mimic the logic in the "BIG 
KLUDGE" comment block (where the trusted host/port check is similarly 
discarding the request).  I was offering to fix that function so the 
error handling works better, but it will be a few days.

-Phil

Pai, Ankur G wrote:
> Disregarding the connection is fine with me. But what do I return
> from bmi_tcp.c. If I return 0, the client call completes. If I return
> -1, server crashes. So if I want to disregard the request, what do I
> return from tcp_accept_init() ?
> 
> 
> Thanks, Ankur ----- Original Message ----- From: "Phil Carns"
> <carns at mcs.anl.gov> To: "Ankur G Pai" <paiankur at gatech.edu> Cc:
> pvfs2-developers at beowulf-underground.org Sent: Thursday, November 20,
> 2008 1:52:56 PM GMT -05:00 Columbia Subject: Re: [Pvfs2-developers]
> bmi-tcp doubt
> 
> The easiest thing would be to just discard the connection, but the 
> downside is the client simply won't get a response back.  It would
> just timeout and report "connection refused" instead.
> 
> The error path needs to be cleaned up regardless, though.  Someone
> else also ran into this in another context recently.  I'll look into
> it and get a patch to you.
> 
> -Phil
> 
> Pai, Ankur G wrote:
>> Hi Phil, All I want is the server not to crash and me not having to
>>  take the request forward since I have already decided into not 
>> servicing it. Could you suggest a reasonable approach?
>> 
>> Thanks, Ankur ----- Original Message ----- From: "Phil Carns" 
>> <carns at mcs.anl.gov> To: "Ankur G Pai" <paiankur at gatech.edu> Cc: 
>> pvfs2-developers at beowulf-underground.org Sent: Thursday, November
>> 20, 2008 10:07:44 AM GMT -05:00 Columbia Subject: Re:
>> [Pvfs2-developers] bmi-tcp doubt
>> 
>> Hi Ankur,
>> 
>> I think we could clean up this path some.  Just to clarify what you
>>  are looking for though, are you planning to send a response all
>> the way back to the client?  The server does not normally send a
>> response back for a failed unexpected message.  In the case you
>> describe, you would need to propagate a specific error code out of 
>> testunexpected(), and then add server state machine code to have it
>>  identify that particular error code and send a response.
>> 
>> Assuming that sounds like a reasonable approach, I'll look into 
>> cleaning up the BMI part of that equation.
>> 
>> -Phil
>> 
>> Pai, Ankur G wrote:
>>> Guys, I need some help. I am trying to change the function 
>>> tcp_accept_init() inside src/io/bmi/bmi_tcp/bmi-tcp.c. This 
>>> function has the accept() call (ie. it is the first point of 
>>> contact by the pvfs client to the server). At this point I need
>>> to make some immediate checks and decide if I want to allow this 
>>> client any further access to the server. If I find out that I do 
>>> NOT want to allow access I need to cleanly return an error to the
>>>  client. If I do a return (-1) from this function, however, the 
>>> server's bmi thread simply crashes giving me the foll output: 
>>> ====================================================================================
>>>  [E 11/15 17:24] src/io/bmi/bmi.c line 957: Error: critical 
>>> BMI_testcontext failure. [E 11/15 17:24]         [bt] 
>>> pvfs2-server(BMI_testcontext+0x274) [0x807a344] [E 11/15 17:24] 
>>> [bt] pvfs2-server [0x8072971] [E 11/15 17:24]         [bt] 
>>> /lib/libpthread.so.0 [0xd4340b] [E 11/15 17:24]         [bt] 
>>> /lib/libc.so.6(__clone+0x5e) [0xa03b7e] [E 11/15 17:24] Warning: 
>>> non PVFS2 error code (1): [E 11/15 17:24] critical BMI failure. :
>>>  Operation not permitted [E 11/15 17:24] bmi_thread_function
>>> thread terminating [E 11/15 17:24] PVFS2 server got signal 2 
>>> (server_status_flag: 262143) 
>>> ======================================================================================
>>> 
>>> 
>>> 
>>> 
>>> I am using pvfs-2.6.3. At this point in the code, i see a comment
>>>  which says: 
>>> ======================================================================================
>>>  /* FIXME: * BIG KLUDGE * if we return an error, pvfs2-server's
>>> bmi thread simply terminates. * hence I am returning 0 here. Need
>>> to ask Phil or RobR about this... */ 
>>> =======================================================================================
>>> 
>>> 
>>> 
>>> 
>>> Is there any fix for this problem yet?
>>> 
>>> 
>> 
>> 
> 
> 



More information about the Pvfs2-developers mailing list