The problem is : It's still failed after releasing the space on disk. I make a patch to fix it: --- ovsdb/log.c+++ ovsdb/log.c@@ -324,5 +324,5 @@ json_string = NULL; - if (file->write_error) {+ if (file->write_error && (ENOSPC != ovsdb_error_errno(file->write_error))) { return ovsdb_error_clone(file->write_error); @@ -366,6 +366,7 @@ /* Remove any partially written data, ignoring errors since there is * nothing further we can do. */ ignore(ftruncate(fileno(file->stream), file->offset));+ ignore(fseeko(file->stream, file->offset, SEEK_SET)); goto error; } @@ -377,4 +377,9 @@error:+ if (file->write_error) {+ ovsdb_error_destroy(file->write_error);+ file->write_error = NULL;+ }+ file->write_error = ovsdb_error_clone(error); free(json_string); return error; --- lib/ovsdb-error.c+++ lib/ovsdb-error.c@@ -73,5 +73,11 @@ return error;}++int ovsdb_error_errno(struct ovsdb_error * error)+{+ return error->errno_;+}+struct ovsdb_error *ovsdb_syntax_error(const struct json *json, const char *tag, const char *details, ...) --- lib/ovsdb-error.h+++ lib/ovsdb-error.h@@ -55,3 +55,6 @@#define OVSDB_WRAP_BUG(MSG, ERROR) \ ovsdb_internal_error(ERROR, __FILE__, __LINE__, "%s", MSG)++int ovsdb_error_errno(struct ovsdb_error * error);+void ovsdb_error_destroy(struct ovsdb_error *);
> Date: Mon, 25 Feb 2013 07:38:58 -0800 > From: b...@nicira.com > To: kunyu...@hotmail.com > CC: discuss@openvswitch.org > Subject: Re: [ovs-discuss] [question] Write ovs database failed with "no > space left on device" > > On Thu, Feb 21, 2013 at 03:47:43PM +0000, likunyun wrote: > > There is a problem when I was testing with ovs . > > Some actions (such as add a port) would be failed when my disk is full, > > the error is "no space left on device" and write ovs database file failed. > > Then I delete some files and make sure there is enough space on my > > disk. But it's also failed with the same error when I do the action (add a > > port) . > > It becomes normal until I restart ovsdb-server process. > > It's not surprising that an OVSDB operation would fail if the disk is > full, because as you note the database is maintained on-disk. Given > that, I don't understand what question you are asking. What do you want > to know?
_______________________________________________ discuss mailing list discuss@openvswitch.org http://openvswitch.org/mailman/listinfo/discuss