Thanks; I will (continue) looking at these.....

On Tue, Mar 27, 2012 at 1:42 PM, Paolo Castagna <
castagna.li...@googlemail.com> wrote:

> Hi Bernie,
> perhaps you can have a look at two or three small test programs in the TDB
> test suite which run read/write transactions concurrently.
>
> If you want, you could try to run them and see if they give you a problem
> or check if there is anything you do which is significantly different and
> try to replicate your usage scenario there:
>
>
> https://svn.apache.org/repos/asf/incubator/jena/Jena2/TDB/tags/jena-tdb-0.9.0-incubating/src/test/java/com/hp/hpl/jena/tdb/transaction/T_TransSystemMultiDatasets.java
>
> https://svn.apache.org/repos/asf/incubator/jena/Jena2/TDB/tags/jena-tdb-0.9.0-incubating/src/test/java/com/hp/hpl/jena/tdb/transaction/T_TransSystem.java
>
> https://svn.apache.org/repos/asf/incubator/jena/Jena2/TDB/tags/jena-tdb-0.9.0-incubating/src/test/java/com/hp/hpl/jena/tdb/transaction/T_TxnDeadlockTest.java
>
> Paolo
>
> Bernie Greenberg wrote:
> > I don't know (businesswise) if I can post my stack trace or details of my
> > code, but, first of all, my coworker was testing the code I had modified;
> > he didn't write any new code, he just operated its UI correctly.
> >
> > One thread was in "begin(WRITE);  make model; add assertions; commit;
> > end()" on the dataset, and the other attempted to" begin(READ); construct
> > map; end()," but instead of waiting in begin(READ), caused the thread
> with
> > the write-lock to crash.  The cited URL addresses a type of abuse of
> which
> > I wouldn't dream, if I understand it correctly (one thread exploiting
> > another's ownership of the database).  I would expect that, with no
> further
> > code, a thread doing a begin(READ) should wait for a thread that
> > successfully executed begin(WRITE) to exit from end() before the
> > begin(READ) returns to its caller; is this not so?
> >
> > If you truly need more stack trace, I'll see what I can do.
> >
> > Bernie
> >
> > On Mon, Mar 26, 2012 at 4:40 PM, Andy Seaborne <a...@apache.org> wrote:
> >
> >> On 26/03/12 16:13, Bernie Greenberg wrote:
> >>
> >>> The new transaction primitives worked superlatively for me, but not
> for my
> >>> coworker testing my code.  As soon as he issued a query while updates
> were
> >>> going on, the latter crashed. mid-transaction.
> >>>
> >>> Does dataset.begin/dataset.end provide, in addition to transaction
> safety,
> >>> thread synchronization/locking as well (as I imagine(d)), or must I
> wrap
> >>> Jena critical sections around each such pair if that is what I expect?
> (In
> >>> either case, the doc for begin/end should say).
> >>>
> >>> Thanks,
> >>> Bernie
> >>>
> >>>
> >> Bernie,
> >>
> >> Do you have a test case or details of the crash?
> >>
> >> Within a transaction all access must be multi-reader or single-writer.
> The
> >> normal pattern is one thread, one transaction.
> >>
> >> http://incubator.apache.org/**jena/documentation/tdb/tdb_**
> >> transactions.html#multi-**threaded_use<
> http://incubator.apache.org/jena/documentation/tdb/tdb_transactions.html#multi-threaded_use
> >
> >>
> >> How is your coworker's testign using the transaction mechanism?
> >>
> >>        Andy
> >>
> >
>

Reply via email to