|   | 
      | 
  
  
      | 
      | 
  
 
     | 
    | 
  
  
     | 
    | 
  
  
    |   | 
      | 
  
  
    | 
         
xen-devel
Re: [Xen-devel] [ANNOUNCE] xen ocaml tools
 
Vincent Hanquez wrote:
 
Patrick Colp wrote:
 
 I think you're thinking of my initial release last year. The version I 
released a few months ago also has an in-memory store and greatly 
improved transactions. It was motivated by the need to survive things 
like DoS attacks.
  
 
Is that possible to find your version of xenstored in a tarball somewhere ?
 attack.tar.gz seems to contains lots of things related to xenstored, but 
yet seems to missing watches and permissions.
 
 The attack code utilises some of the code from the version of XenStore I 
wrote. I released a patch for it to the list as well as a link to my 
website where the code available as a gzip and bzip2:
website: http://cs.ubc.ca/~pjcolp/
bzip2 direct link: http://cs.ubc.ca/~pjcolp/xenstore-ocaml.tar.bz2
gzip direct link: http://cs.ubc.ca/~pjcolp/xenstore-ocaml.tar.gz
 I'm attaching the gzip version to this e-mail as well. The code is 
designed to be compiled against Xen as a replacement to the C version. I 
put it in the tools/xenstore directory in the xen-unstable tree to 
compile it.
 I wrote a little attack program (in OCaml) which runs from any DomU 
and brought the original xenstored to its knees. With the attack 
going, it's impossible to bring a new domain up -- it just hangs 
forever attempting to bring it up. Basically, the attack just hammers 
xenstored with micro-transactions. With the original transaction 
system, which allows the first committing transaction in a generation 
to win, long transactions could never complete. I implemented 
transactions that would enable all concurrent but non-conflicting 
transactions to commit. This made my version of xenstored resilient to 
the attack.
 I played around with this with your version too, but found that, while 
it would not hang forever while attempting to load a domain, it would 
instead die after a few seconds with the following error:
Error: (2, 'No such file or directory')
   
 i haven't really had time to look yet (i've been swamped with others 
things), but will try to run your program.
but what is dying in the scenario you described ? ocaml xenstored or the 
attack program ?
 
 When the attack is run, neither the attack nor xenstored die, but while 
the attack is running it is impossible to start a domain. In the C 
version, it would hang forever attempting to start a domain. When I ran 
it against your OCaml version, it wouldn't hang but instead after a few 
seconds the domain start would quit with the error:
Error: (2, 'No such file or directory')
 If you're interested, I think it would be great to trying to merge the 
two XenStores together to get the best of both worlds. Are you going to 
be at Xen Summit? If so, would you be interested in chatting about this 
in person?
Patrick
 
 
xenstore-ocaml.tar.gz 
Description: GNU Zip compressed data 
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
 
 |   
 
 | 
    | 
  
  
    |   | 
    |