Greetings,

I searched the web and the list archives but found nothing relevant to this
problem, so here goes...

I'm using sqlite (through the pysqlite wrapper, but this behaviour seems
unrelated to the wrapper) in an application on various platforms.  One process
create an sqlite database and starts writing data to it; another process opens
the sqlite database and reads from it.

On most platforms, the reader sees new data appear in the database
periodically as the writer creates new records.  But on Solaris, the reader
never sees any updates -- it only ever sees whatever data was in the database
when the reader first opened it, even though the writer is continuing to
insert new data periodically.

I've seen similar behaviour with non-database files on Solaris -- writes to a
file across processes aren't seen by the reader unless the reader supplies the
O_RSYNC flag to the open(2) call.  It seems to be a Solaris peculiarity, as I
don't see this behaviour on Linux, *BSD, or other commercial Unices.

I've looked at the sqlite source code, and it does not appear to be supplying
the O_RSYNC or O_SYNC flags to open(2).

So, my questions are:

  1) Has anyone else run into this issue?  Is there a known way to work around
  it?

  2) Should the open(2) call be modified to provide the O_RSYNC flag?  Would
  this have nasty side effects?

I appreciate any responses.  I'm subscribed to the list, so I don't need to be
cc'd.

Charles
-- 
-----------------------------------------------------------------------
Charles Cazabon                           <[EMAIL PROTECTED]>
-----------------------------------------------------------------------

-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]
-----------------------------------------------------------------------------

Reply via email to