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"
<[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?
_______________________________________________
Pvfs2-developers mailing list
[email protected]
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers