On Jun 24, 2009, at 3:39 PM, Nicholas Mills wrote:

When I say new create code I'm referring to the changes to the server's create.sm and the corresponding changes to the client's sys- create.sm since 2.7.1 (almost all of the changes come from the small file branch).

It used to be that both sys-symlink and sys-create used the server "create" request to create their objects. But now that create only makes regular files the sys-symlink code has been modified to use batch-create with a size of one. This approach works, but it seems to me to be a misuse of an operation designed for the creation of multiple handles between servers.

As you know, David and I are working on eliminating the security holes present in the current version of PVFS. I would really rather not give client code the ability to create up to 8192 handles (source: pvfs2-req-proto.h) with a single request.

Is there any obstacle to moving the symlink creation code to the server side in the same way that regular file creation was moved to the server side? I realize it would involve adding yet another request (and state machine), but I believe in the interest of security that regular clients should not have access to the functionality provided by batch-create.

There's no obstacle from an implementation perspective. It changes the protocol format, which means a major version upgrade, but maybe that's not a big deal for the security changes you're making.

Can you describe the security holes you are trying to eliminate?
Moving the symlink doesn't allow you to eliminate the batch_create request from the list of requests that the server is willing to accept. Servers must still send those requests to each other obviously, and in the default environment, we don't make distinction between metadata and I/O server, so metadata servers will still need to accept the batch_create as well. Further, our servers don't differentiate between (or in-fact *can* differentiate right now) client requests and requests from other servers, so I don't see what is gained by moving symlink to the server.

It sounds like your approach to eliminating security holes is with "security by obscurity". In other words, if the client (or some rogue process acting as a client) does not know that the interface is there, he can't abuse it. I don't think that's the right approach, especially since PVFS is completely open source, and anyone can just look at the code.

-sam


Thanks for your response,

Nick

On Wed, Jun 24, 2009 at 2:03 PM, Sam Lang <[email protected]> wrote:

On Jun 24, 2009, at 9:22 AM, Nicholas Mills wrote:

Hey all,

Can someone quickly explain to me why sys-symlink.sm (in the client code) now uses batch create with a fixed size of one? What prevents us from using the new create code? This change was merged in by phil with the small files branch.

What "new create code" do you refer to? The batch create code is the new create path.
-sam


Thanks,

Nick
_______________________________________________
Pvfs2-developers mailing list
[email protected]
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers



_______________________________________________
Pvfs2-developers mailing list
[email protected]
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers

Reply via email to