Commit Graph
37 Commits
Author SHA1 Message Date
iap10@firebug.cl.cam.ac.uk 90c0e3301d Install libxenstore in /usr/lib64 for 64 bit builds
Signed-off-by: ian@xensource.com
2005-08-10 16:52:03 +00:00
cl349@firebug.cl.cam.ac.uk c2bf763b7f Make xen daemon startup more robust.
1) make xenconsoled exit gracefully if xcs dies
2) daemonize xenstored before binding to xenstored socket
3) wait to close stdio in xenstored until we're ready to accept
connections (so that PID=`xenstored --output-pid` doesn't return until
it's ready to accept connections)
4) updates tools/misc/xend for these changes
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Signed-off-by: Rusty Russell <rusty@rustycorp.com.au>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
2005-08-10 09:46:51 +00:00
cl349@firebug.cl.cam.ac.uk 9045816f69 Do not suppress errors on writes outside transactions.
Mike Wray made this change because xend's callbacks were failing
with EROFS, because a transaction was going on.  However, the
solution is to either block callbacks during transactions, or use
a different connection to the store.
We fail ex-transaction activity because it's not clear what the right
behaviour is: it allows deadlock if two people do it, and it implied
your transaction isn't rooted in the right place.

This hack caused the testsuite to fail (obviously), so as a result the
testsuite wasn't run very often.  This caused it to bitrot.
Signed-off-by: Rusty Russel <rusty@rustcorp.com.au>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
2005-08-09 16:16:08 +00:00
kaf24@firebug.cl.cam.ac.uk 592d8f352a Remove dead file. 2005-08-08 11:10:54 +00:00
kaf24@firebug.cl.cam.ac.uk 0996bc07b9 1) More testing: include tests which I forgot in previous patch, remove
xs_watch_stress, reduce cycles in "make check" random test.
2) xs_crashme: corrupt random packets going to xenstored, watch it
crash.
3) Handle second input from before we finished output on first one.
4) Fix bug where one-arg operations are given zero args.
5) Fix bug where SET_PERMS fails after blocking on transaction.
6) Fix memory leak when DIRECTORY op given no argument.
7) Fail on first memory leak, for better testing.
8) Fix missing waiting_for_ack initialization for new connections.
9) Ensure all input and output is handled for domains so we don't stall.
10) Fix overrun bug in xs_count_strings on non-nul-terminated strings.
11) New test for clients which write without waiting for response.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2005-08-08 09:13:19 +00:00
kaf24@firebug.cl.cam.ac.uk a3cbc30d9f xenstored has had a testsuite for some time. This splits the test
targets into "make -s check" (the GNU standard) which is designed to run
in several seconds or less, with only "<dirname>:" and a seried of "."
for output, and "make fullcheck" which is more verbose and complete, and
runs in minutes.

I plan to submit a patch to plumb these tests in at the top level soon,
with the idea of having a "make -s check" which you can reasonable run
every checkin (time make check << time make), and a "make fullcheck"
which you can run after significant changes.

This patch speeds up testing by making tests one single "xs_test"
script, enhancing xs_test with a simple "expect" command.  It also only
runs the "high value" tests under "make check", and leaves the rest for
"make fullcheck".

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2005-08-05 09:04:01 +00:00
kaf24@firebug.cl.cam.ac.uk 1126965540 Attached are
three patches to fix a problem with Xend starting consoled.  consoled 
depends on xenstored to be running and xenstored is started on demand in 
Xend.  The patches change xenstored to manage its own pidfile, and have 
xend start actually start up xenstored.
2005-08-04 18:51:55 +00:00
kaf24@firebug.cl.cam.ac.uk c025f1530a Here are another couple of places where 8 sectors/page is assumed,
which I missed in my first patch.

Signed-off-by: Matthew Chapman <matthewc@hp.com>
2005-08-04 08:58:18 +00:00
kaf24@firebug.cl.cam.ac.uk 165c0d1741 libxenstore (used to access the daemon) should be licensed under LGPL.
There are several people I am aware of interested in writing non-GPL
tools, and this code is trivial, so they'd just end up writing their
own.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2005-08-04 08:57:37 +00:00
cl349@firebug.cl.cam.ac.uk b7f49181c9 Implement watching of nodes which don't exist.
Requires permission check every time event is generated.
Requires generalization of permissions: ask arbitrary number of
parents whether it's OK to tell about node (eg. watching
/dir/subdir/x when /dir is deleted: root permissions will now
determine whether we fire event).
Add test that we don't leak information on whether a file exists
or not.
Signed-off-by: Rusty Russel <rusty@rustcorp.com.au>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
2005-08-02 18:04:28 +00:00
cl349@firebug.cl.cam.ac.uk 879b63b37c Fix up non-valgrind case to send stderr to file like valgrind case does.
(Having trouble with signal delivery and valgrind, causing spurious test
timeouts)
Signed-off-by: Rusty Russel <rusty@rustcorp.com.au>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
2005-08-02 17:59:59 +00:00
cl349@firebug.cl.cam.ac.uk c5a8d2c78b Don't abort on untranslatable errors: EINVAL and print warning
Signed-off-by: Rusty Russel <rusty@rustcorp.com.au>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
2005-08-02 17:59:20 +00:00
cl349@firebug.cl.cam.ac.uk 0c4fa371ca Don't unbind port when event channel binding fails.
This happens when xend tries to introduce the same domain twice.
Signed-off-by: Rusty Russel <rusty@rustcorp.com.au>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
2005-07-28 12:33:53 +00:00
cl349@firebug.cl.cam.ac.uk eb825f79cb Remove ill-conceived concept of watches blocking reply on
connection which did write/mkdir/rm/setperm etc.
This causes deadlocks in real life, and I can't see a sane way
of avoiding them: it is reasonable for someone to ignore watch
notifications while doing other actions, and that means that
we can do other writes.  These writes can block pending other
watchers; if one of these is the process blocked awaiting our
ack, we deadlock.
Signed-off-by: Rusty Russel <rusty@rustcorp.com.au>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
2005-07-26 15:26:32 +00:00
cl349@firebug.cl.cam.ac.uk dfc7e02e7a Fix bug where transaction fires multiple events.
Add general trace() call to help future debugging.
Signed-off-by: Rusty Russel <rusty@rustcorp.com.au>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
2005-07-26 15:24:28 +00:00
cl349@firebug.cl.cam.ac.uk df569ddb1c Fix bug where watch messages doesn't go out. Also change xs_test
to more closely represent xenbus behaviour so we can see the bug.
Signed-off-by: Rusty Russel <rusty@rustcorp.com.au>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
2005-07-26 15:23:50 +00:00
cl349@firebug.cl.cam.ac.uk b4ff7e6103 Allow test.sh to take arg: name of test to start with
Signed-off-by: Rusty Russel <rusty@rustcorp.com.au>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
2005-07-26 15:21:32 +00:00
cl349@firebug.cl.cam.ac.uk c86032d118 Make testing more reliable: wait for event after async so we know
child has done command
Signed-off-by: Rusty Russel <rusty@rustcorp.com.au>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
2005-07-26 15:21:00 +00:00
cl349@firebug.cl.cam.ac.uk ef07173654 Change watches: operations block until everyone has acked.
Watch events are no longer sent to self
Watches no longer take a priority
async and asyncwait commands for xs_test, now we need to continue
despite blocking ops.
Print test name at end of verbose run on failure.
Use --trace-file arg to xenstored when testing
Signed-off-by: Rusty Russel <rusty@rustcorp.com.au>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
2005-07-26 15:20:09 +00:00
cl349@firebug.cl.cam.ac.uk e04c630cb2 Change from bool indicating blocked to an enum: when watches go
synchronous this makes it easier (because then we have two reasons
to block)
Instead of using return value, use explicit state member inside
struct connection.
Signed-off-by: Rusty Russel <rusty@rustcorp.com.au>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
2005-07-26 15:13:56 +00:00
cl349@firebug.cl.cam.ac.uk e08ecc0000 Test and fix acknowedge_watch from returning EINVAL.
Also ensure that daemon re-xmits event if they ack wrong thing
(otherwise confused clients get stuck, as we will send no more
data while awaiting ack).
Signed-off-by: Rusty Russel <rusty@rustcorp.com.au>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
2005-07-26 15:09:43 +00:00
cl349@firebug.cl.cam.ac.uk a9c1da21e1 Fix testsuite to ignore tool/ dir.
Signed-off-by: Rusty Russel <rusty@rustcorp.com.au>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
2005-07-26 15:08:22 +00:00
cl349@firebug.cl.cam.ac.uk d461f09e21 Start of code to persistent store connections when xenstored restarts
Signed-off-by: Rusty Russel <rusty@rustcorp.com.au>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
2005-07-26 14:02:33 +00:00
cl349@firebug.cl.cam.ac.uk 0f36f0e095 xenstored updates.
- add trace file support.
- update permissions code.
- trigger watches on children of nodes being removed.
- update test cases.
Signed-off-by: Rusty Russel <rusty@rustcorp.com.au>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
2005-07-12 10:16:33 +00:00
kaf24@firebug.cl.cam.ac.uk 847e60294d Fix cross-compilation, and gcc4.
Signed-off-by: Jerone Young <jyoung5@us.ibm.com>
2005-07-07 08:08:40 +00:00
cl349@firebug.cl.cam.ac.uk 834bb72330 Undo "Add -fPIC tools/xenstore/Makefile". 2005-07-05 08:44:29 +00:00
cl349@firebug.cl.cam.ac.uk c8cf49e882 bitkeeper revision 1.1748 (42bbc14djIjScNrLp20eDhlxUjQl4g)
xenstored_transaction.c, xenstored_core.h, xenstored_core.c, TODO:
  Update TODO list
  Wrap opendir in talloc so it gets cleaned up on OOM.
  Remove last call to system by open-coding "cp -al" to create
  transaction.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
2005-06-24 08:16:13 +00:00
cl349@firebug.cl.cam.ac.uk 1e6b0c78d8 bitkeeper revision 1.1724 (42b7d6f60v0z2ZEkw36W_1joFfySfw)
Make xs_read/read_reply allocate an extra byte and put a nul character
at the end of objects to allow easy use as a string.
From: Rusty Russell <rusty@rustcorp.com.au>                                     
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
2005-06-21 08:59:34 +00:00
iap10@freefall.cl.cam.ac.uk 85b8054ceb bitkeeper revision 1.1718 (42b354a2M210uRAoeEEWX9FSzlNu-Q)
Add -fPIC tools/xenstore/Makefile 

From: Jerone Young <jyoung5@us.ibm.com>
Signed-off-by: ian@xensource.com
2005-06-17 22:54:26 +00:00
cl349@firebug.cl.cam.ac.uk 4ddc54b2db bitkeeper revision 1.1713.3.5 (42b2a4e2r6SNlC_nq2hAkXEQjEFAmA)
Many files:
  - watch now takes a token, returned when reading watch
  - More tests
  - Fix domain shared page communication (flush output)
  - Add "home" path for domains
  - More permissions checks in various functions
  - Simplify watch acknowledgement code and fix occasional bug
xs_watch_stress.c, 12readonly.sh, 11domain-watch.sh, 10domain-homedir.sh:
  new file
xs_stress.c, xs_lib.h, xs_lib.c:
  Cleanup whitespace.
ignore:
  Add tools/xenstore/xs_watch_stress
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
2005-06-17 10:24:34 +00:00
cl349@firebug.cl.cam.ac.uk 6e1ff5f262 bitkeeper revision 1.1713.3.3 (42b2995e93GNUwPpV6yP21Fl3iIRRQ)
Makefile:
  Add xs_dom0_test program to test IOCTL_PRIVCMD_INITDOMAIN_STORE.
xs_dom0_test.c:
  new file
From: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
2005-06-17 09:35:26 +00:00
cl349@firebug.cl.cam.ac.uk b68bddb480 bitkeeper revision 1.1713.3.2 (42b296adTFf-i3SL6NuYF5MX4ai91Q)
Makefile:
  Build libxenstore-pic.a.
setup.py:
  Link with libxenstore-pic.a.
Makefile:
  Build libxc-pic.a.
  Build xenstore once is enough.
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
2005-06-17 09:23:57 +00:00
kaf24@firebug.cl.cam.ac.uk f2e3420e73 bitkeeper revision 1.1705.1.15 (42a9af28Mzva9Shzn8gUSiuJSM-TbA)
xenstore fixes for read-only connections.
2005-06-10 15:18:00 +00:00
kaf24@firebug.cl.cam.ac.uk 31519ad1fd bitkeeper revision 1.1705.1.13 (42a99a6dV4rHEyZ-t7znDZXeW50z5Q)
Some functions of xenstore library dont have xs_ as prefix. This patch
fixes the problem.
Signed-off-by: Nguyen Anh Quynh <aquynh@gmail.com>
2005-06-10 13:49:33 +00:00
kaf24@firebug.cl.cam.ac.uk 684d27a678 bitkeeper revision 1.1705.1.8 (42a95272T6JE4ReAkgMVg0Rte2ppxA)
Install/uninstall xenstore headers.
2005-06-10 08:42:26 +00:00
kaf24@firebug.cl.cam.ac.uk bd031b9bbc bitkeeper revision 1.1705 (42a8a185wutSw6hue95Thw_5_jDPZw)
Xenstore build fixes for x86/64.
Signed-off-by: Jerone Young <jyoung5@us.ibm.com>
2005-06-09 20:07:33 +00:00
cl349@firebug.cl.cam.ac.uk 29c9e570b1 bitkeeper revision 1.1662.1.15 (42a5968eiZE_DjdIFPjxvzLw6ACvCQ)
Add xenstore daemon and library.
Makefile:
  Add xenstore subdirectory.
  Remove xs_stress on clean.
Many files:
  new file
ignore:
  Update ignore list for xenstore.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (authored)
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
2005-06-07 12:43:58 +00:00