I've attached a test patch to the CONNECTORS-478 ticket that you can
download and use to patch 0.5.1 sources.  The test patch *should* fix
the problem, but if it doesn't, it will certainly log more
diagnostics, enough so I can see what the change in behavior has been
for Derby in this release.

FWIW, it looks like Derby is throwing a slightly different kind of
exception for this case than it did before.

Can you please try it out and let me know what happens?

Thanks!
Karl


On Mon, Jun 4, 2012 at 6:29 AM, Karl Wright <[email protected]> wrote:
> Thanks, this is exactly what I was looking for.
>
> I'll put it in the ticket and have a look at this later today.
>
> Karl
>
>
> On Mon, Jun 4, 2012 at 6:20 AM, Marcin Goss <[email protected]> wrote:
>> This is all I've got. I am sorry for the polish fragments, I can't seem to 
>> change it anywhere. Anyway, hopefully you should be able to get all the 
>> information you need.
>>
>> ERROR 2012-06-04 11:22:25,449 (Worker thread '42') - Worker thread aborting 
>> and restarting due to database connection reset: Database exception: 
>> Exception doing query: Instrukcja została przerwana, ponieważ mogła 
>> spowodować powstanie duplikatu wartości klucza w regule ograniczającej klucz 
>> unikalny lub podstawowy albo w unikalnym indeksie identyfikowanym przez 
>> obiekt 'C1338469165883' zdefiniowany dla 'EVENTS'.
>> org.apache.manifoldcf.core.interfaces.ManifoldCFException: Database 
>> exception: Exception doing query: Instrukcja została przerwana, ponieważ 
>> mogła spowodować powstanie duplikatu wartości klucza w regule ograniczającej 
>> klucz unikalny lub podstawowy albo w unikalnym indeksie identyfikowanym 
>> przez obiekt 'C1338469165883' zdefiniowany dla 'EVENTS'.
>>        at 
>> org.apache.manifoldcf.core.database.Database.executeViaThread(Database.java:680)
>>        at 
>> org.apache.manifoldcf.core.database.Database.executeUncachedQuery(Database.java:726)
>>        at 
>> org.apache.manifoldcf.core.database.Database$QueryCacheExecutor.create(Database.java:1393)
>>        at 
>> org.apache.manifoldcf.core.cachemanager.CacheManager.findObjectsAndExecute(CacheManager.java:144)
>>        at 
>> org.apache.manifoldcf.core.database.Database.executeQuery(Database.java:185)
>>        at 
>> org.apache.manifoldcf.core.database.DBInterfaceDerby.performModification(DBInterfaceDerby.java:831)
>>        at 
>> org.apache.manifoldcf.core.database.DBInterfaceDerby.performInsert(DBInterfaceDerby.java:222)
>>        at 
>> org.apache.manifoldcf.core.database.BaseTable.performInsert(BaseTable.java:68)
>>        at 
>> org.apache.manifoldcf.crawler.jobs.EventManager.createEvent(EventManager.java:123)
>>        at 
>> org.apache.manifoldcf.crawler.jobs.JobManager.beginEventSequence(JobManager.java:4217)
>>        at 
>> org.apache.manifoldcf.crawler.system.WorkerThread$VersionActivity.beginEventSequence(WorkerThread.java:1236)
>>        at 
>> org.apache.manifoldcf.crawler.connectors.webcrawler.WebcrawlerConnector.lookupIPAddress(WebcrawlerConnector.java:4737)
>>        at 
>> org.apache.manifoldcf.crawler.connectors.webcrawler.WebcrawlerConnector.getDocumentVersions(WebcrawlerConnector.java:634)
>>        at 
>> org.apache.manifoldcf.crawler.system.WorkerThread.run(WorkerThread.java:318)
>> Caused by: java.sql.SQLIntegrityConstraintViolationException: Instrukcja 
>> została przerwana, ponieważ mogła spowodować powstanie duplikatu wartości 
>> klucza w regule ograniczającej klucz unikalny lub podstawowy albo w 
>> unikalnym indeksie identyfikowanym przez obiekt 'C1338469165883' 
>> zdefiniowany dla 'EVENTS'.
>>        at 
>> org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown 
>> Source)
>>        at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown 
>> Source)
>>        at 
>> org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown
>>  Source)
>>        at 
>> org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown 
>> Source)
>>        at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown 
>> Source)
>>        at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown 
>> Source)
>>        at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown 
>> Source)
>>        at 
>> org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(Unknown 
>> Source)
>>        at 
>> org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeUpdate(Unknown 
>> Source)
>>        at 
>> org.apache.manifoldcf.core.database.Database.execute(Database.java:839)
>>        at 
>> org.apache.manifoldcf.core.database.Database$ExecuteQueryThread.run(Database.java:640)
>> Caused by: java.sql.SQLException: Instrukcja została przerwana, ponieważ 
>> mogła spowodować powstanie duplikatu wartości klucza w regule ograniczającej 
>> klucz unikalny lub podstawowy albo w unikalnym indeksie identyfikowanym 
>> przez obiekt 'C1338469165883' zdefiniowany dla 'EVENTS'.
>>        at 
>> org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown 
>> Source)
>>        at 
>> org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown
>>  Source)
>>        ... 11 more
>> Caused by: ERROR 23505: Instrukcja została przerwana, ponieważ mogła 
>> spowodować powstanie duplikatu wartości klucza w regule ograniczającej klucz 
>> unikalny lub podstawowy albo w unikalnym indeksie identyfikowanym przez 
>> obiekt 'C1338469165883' zdefiniowany dla 'EVENTS'.
>>        at org.apache.derby.iapi.error.StandardException.newException(Unknown 
>> Source)
>>        at 
>> org.apache.derby.impl.sql.execute.IndexChanger.insertAndCheckDups(Unknown 
>> Source)
>>        at org.apache.derby.impl.sql.execute.IndexChanger.doInsert(Unknown 
>> Source)
>>        at org.apache.derby.impl.sql.execute.IndexChanger.insert(Unknown 
>> Source)
>>        at org.apache.derby.impl.sql.execute.IndexSetChanger.insert(Unknown 
>> Source)
>>        at org.apache.derby.impl.sql.execute.RowChangerImpl.insertRow(Unknown 
>> Source)
>>        at 
>> org.apache.derby.impl.sql.execute.InsertResultSet.normalInsertCore(Unknown 
>> Source)
>>        at org.apache.derby.impl.sql.execute.InsertResultSet.open(Unknown 
>> Source)
>>        at 
>> org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(Unknown 
>> Source)
>>        at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown 
>> Source)
>>        ... 5 more
>>
>>
>> /Marcin
>>
>> -----Original Message-----
>> From: Karl Wright [mailto:[email protected]]
>> Sent: Monday, June 04, 2012 12:17 PM
>> To: [email protected]
>> Subject: Re: Derby DB up-to-date?
>>
>> I've created CONNECTORS-478 to track this issue.  But please do send along 
>> the rest of the stack trace context because without that I cannot know 
>> where, exactly, the constraint violation is not getting caught.
>>
>> Thanks,
>> Karl
>>
>> On Mon, Jun 4, 2012 at 6:08 AM, Karl Wright <[email protected]> wrote:
>>> Can you provide the rest of the exception?  (The "caused by" clauses
>>> etc.?)
>>>
>>> The fact is that we discovered that 10.8.2.2 throws deadlock and
>>> constraint violation exceptions in different places (as compared to
>>> 10.7.1.1) under multi-threaded conditions.  That was part of the
>>> reason why the 0.5.1 release was necessary.  It's of course possible
>>> that we missed some places that (for instance) the wiki connector
>>> especially tweaks.
>>>
>>> Karl
>>>
>>>
>>> On Mon, Jun 4, 2012 at 5:29 AM, Marcin Goss <[email protected]> 
>>> wrote:
>>>> Hello Karl,
>>>>
>>>> Thank you for answering.
>>>>  I am using Manifold 0.5.1 and what I am doing is a simple indexing of a 
>>>> wiki page. The error that I am getting looks like this:
>>>>
>>>> Caused by: java.sql.SQLIntegrityConstraintViolationException: The 
>>>> statement was aborted because it would have caused a duplicate key value 
>>>> in a unique or primary key constraint or unique index identified by 
>>>> 'XXXXXXXX' defined on 'EVENTS'.
>>>>        at
>>>> org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unkn
>>>> own Source)
>>>>        at
>>>> org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown
>>>> Source)
>>>>        at
>>>> org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException
>>>> (Unknown Source)
>>>>        at
>>>> org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Un
>>>> known Source)
>>>>        at
>>>> org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown
>>>> Source)
>>>>        at
>>>> org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown
>>>> Source)
>>>>        at
>>>> org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown
>>>> Source)
>>>>
>>>> /Marcin
>>>>
>>>> -----Original Message-----
>>>> From: Karl Wright [mailto:[email protected]]
>>>> Sent: Wednesday, May 30, 2012 12:42 PM
>>>> To: [email protected]
>>>> Subject: Re: Derby DB up-to-date?
>>>>
>>>> Also, the ManifoldCF tests passed for these releases, so I'm wondering 
>>>> exactly what you are seeing.  Can you provide more details, including 
>>>> exceptions?
>>>>
>>>> Karl
>>>>
>>>> On Wed, May 30, 2012 at 6:38 AM, Karl Wright <[email protected]> wrote:
>>>>> Which version of ManifoldCF are you using?  The 0.5 release uses 10.8.2.2.
>>>>>
>>>>> Karl
>>>>>
>>>>> On Wed, May 30, 2012 at 5:21 AM, Marcin Goss <[email protected]> 
>>>>> wrote:
>>>>>> I'm getting an error in a default manifoldCF setup (jetty server
>>>>>> and derby
>>>>>> db) that is probably caused (my supposition) by this bug in Derby:
>>>>>> https://issues.apache.org/jira/browse/DERBY-3343. The bug was fixed
>>>>>> in January 2011. Which version of Derby db is coming with ManifoldCF?
>>>>>> Is it the one with this bug fixed?
>>>>>>
>>>>>>
>>>>
>>>>
>>
>>

Reply via email to