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" <[EMAIL PROTECTED]> To: "Ankur G Pai" <[EMAIL PROTECTED]> Cc: [email protected] 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" > <[EMAIL PROTECTED]> To: "Ankur G Pai" <[EMAIL PROTECTED]> Cc: > [email protected] 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? >> >> > > > -- Thanks & Regards, Ankur Pai Graduate Student - Computer Science College of Computing Georgia Institute of Technology _______________________________________________ Pvfs2-developers mailing list [email protected] http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers
