Hi Odysseas,
Answer from user about this exception.

I just realize that you responded my deleted post.
> The problem was in my application. DB works fine.
> That's why I deleted this post.
> Thanks though!
> -Andrey


Looking forward for your test case.


On Wed, Mar 5, 2014 at 6:49 PM, Odysseas Pentakalos <[email protected]
> wrote:

> Andrey,
> I'll try to re-create the issue I have in a test case and send it to you.
> I noticed in the forum today that someone else was getting the
> OIndexException in a multi-threaded scenario.
>  Thanks,
> Odysseas
>
>
> On Wed, Mar 5, 2014 at 7:39 AM, Andrey Lomakin 
> <[email protected]>wrote:
>
>> Hi,
>> I tried
>>
>> @Test
>>   public void testDirtyTxQuery() throws Exception {
>>     graph.createVertexType("vTX");
>>
>>     final CountDownLatch latch = new CountDownLatch(1);
>>     final AtomicBoolean shutdownFlag = new AtomicBoolean(false);
>>
>>     final ExecutorService executorService =
>> Executors.newCachedThreadPool();
>>
>>     final Future inserter = executorService.submit(new Callable<Void>() {
>>       @Override
>>       public Void call() throws Exception {
>> OrientGraph graph = new OrientGraph(DB_URL);
>>
>>           latch.await();
>>           int counter = 0;
>>
>>         while (!shutdownFlag.get()) {
>>           graph.addVertex("class:vTX", "val", "val" + counter);
>>           counter++;
>>
>> graph.command(new OCommandSQL("select count(*) from VTx")).execute();
>>           if (counter % 100 == 0)
>>             graph.commit();
>>         }
>>
>>         return null;
>>       }
>>     });
>>
>>     final Future fetcher = executorService.submit(new Callable<Void>() {
>>       @Override
>>       public Void call() throws Exception {
>> OrientGraph graph = new OrientGraph(DB_URL);
>>         latch.await();
>>
>>         while (!shutdownFlag.get())
>>           graph.command(new OCommandSQL("select count(*) from
>> VTx")).execute();
>>
>>         return null;
>>       }
>>     });
>>
>>     latch.countDown();
>>     Thread.sleep(300000);
>>
>>   shutdownFlag.set(true);
>>
>>     inserter.get();
>>     fetcher.get();
>>   }
>>
>>
>> No issues.
>>
>> Could you provide test case ?
>>
>>
>> On Fri, Feb 28, 2014 at 8:17 PM, Odysseas <[email protected]>wrote:
>>
>>>
>>> I am continuing to investigate this problem to try and resolve it. It
>>> looks like if you do a query against the database that looks at records
>>> that are temporary, we get an exception.
>>>
>>> For example, while importing lots of records into the database using one
>>> transaction for a fixed block of records (not a single transaction for all
>>> N records that need to be imported but one transaction for a block M of
>>> records where M << N), if before the transaction is committed you do a
>>> query such as (select count(*) from V) then we get an exception to the read
>>> operation that complains about the state of the transaction being in an
>>> invalid state.
>>>
>>> If my analysis is correct, then this to me is either a bug or we are not
>>> using the API correctly. I'll ask again for suggestions on what is causing
>>> this.
>>>
>>> Thanks,
>>> Odysseas
>>>
>>> On Friday, February 28, 2014 1:16:38 PM UTC-5, Odysseas wrote:
>>>>
>>>>
>>>>
>>>> On Tuesday, February 18, 2014 8:45:27 AM UTC-5, Odysseas wrote:
>>>>>
>>>>>
>>>>> We are transitioning our application from 1.6.3 to 1.7-rc1 and have
>>>>> run into an issue when re-deploying the application. When we first deploy
>>>>> the application everything is working fine but if we redeploy it, it
>>>>> doesn't seem
>>>>> to be shutting down properly because during the restart we are getting
>>>>> the following exception:
>>>>>
>>>>> Caused by: 
>>>>> com.orientechnologies.orient.core.exception.OSerializationException:
>>>>> Cannot load database's configuration. The database seems to be corrupted.
>>>>>  at com.orientechnologies.orient.core.storage.impl.local.
>>>>> OStorageConfigurationSegment.load(OStorageConfigurationSegment.
>>>>> java:74)
>>>>>  at com.orientechnologies.orient.core.storage.impl.local.paginated.
>>>>> OLocalPaginatedStorage.addDefaultClusters(OLocalPaginatedStorage.java:
>>>>> 1933)
>>>>>  at com.orientechnologies.orient.core.storage.impl.local.paginated.
>>>>> OLocalPaginatedStorage.open(OLocalPaginatedStorage.java:191)
>>>>>  ... 137 more
>>>>> Caused by: com.orientechnologies.common.concur.lock.OLockException:
>>>>> File '/mnt/sysnet/person-db/database.ocf' is locked by another
>>>>> process, maybe the database is in use by another process. Use the remote
>>>>> mode with a OrientDB server to allow multiple access to the same database.
>>>>>  at com.orientechnologies.orient.core.storage.fs.OAbstractFile.
>>>>> lock(OAbstractFile.java:375)
>>>>> at com.orientechnologies.orient.core.storage.fs.OAbstractFile.
>>>>> openChannel(OAbstractFile.java:641)
>>>>>  at com.orientechnologies.orient.core.storage.fs.OAbstractFile.
>>>>> open(OAbstractFile.java:141)
>>>>> at com.orientechnologies.orient.core.storage.impl.local.
>>>>> OSingleFileSegment.open(OSingleFileSegment.java:53)
>>>>>  at com.orientechnologies.orient.core.storage.impl.local.
>>>>> OStorageConfigurationSegment.load(OStorageConfigurationSegment.
>>>>> java:54)
>>>>>
>>>>> During the shutdown process we close the pool first
>>>>> (OrientGraphFactory) and then shutdown the storage as before:
>>>>>
>>>>>             final OStorage stg = Orient.instance().getStorage(
>>>>> entityStore.getStorageName());
>>>>>             if (stg != null) {
>>>>>                 stg.close();
>>>>>             }
>>>>>
>>>>> The close on the storage is performed successfully. What are we
>>>>> missing here? Is there a way to track who has the storage still open?
>>>>>
>>>>> Thanks,
>>>>> Odysseas
>>>>>
>>>>  --
>>>
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "OrientDB" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>>
>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>
>>
>>
>>
>> --
>> Best regards,
>> Andrey Lomakin.
>>
>> Orient Technologies
>> the Company behind OrientDB
>>
>>  --
>>
>> ---
>> You received this message because you are subscribed to a topic in the
>> Google Groups "OrientDB" group.
>> To unsubscribe from this topic, visit
>> https://groups.google.com/d/topic/orient-database/GDSDoWgJ-PU/unsubscribe
>> .
>> To unsubscribe from this group and all its topics, send an email to
>> [email protected].
>>
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>
>  --
>
> ---
> You received this message because you are subscribed to the Google Groups
> "OrientDB" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/groups/opt_out.
>



-- 
Best regards,
Andrey Lomakin.

Orient Technologies
the Company behind OrientDB

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"OrientDB" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to