Skip to content
This repository has been archived by the owner on Jan 9, 2025. It is now read-only.

Inconsistent timestamp of file #633

Open
ts-00 opened this issue Aug 29, 2023 · 1 comment
Open

Inconsistent timestamp of file #633

ts-00 opened this issue Aug 29, 2023 · 1 comment

Comments

@ts-00
Copy link

ts-00 commented Aug 29, 2023

Environment Details

  • MicroStream Version: 08.01.01-MS-GA
  • JDK version: 17
  • OS: Mac os
  • Used frameworks: Wildfly 29

Describe the bug

I'm not sure if this is a bug. However, if not, the user cannot easily fix the corrupted storage/memory, or?

I get this stacktrace:

Caused by: one.microstream.storage.exceptions.StorageException: Problem in channel #0
	at testapp.war//one.microstream.storage.types.StorageChannelTask$Abstract.checkForProblems(StorageChannelTask.java:114)
	at testapp.war//one.microstream.storage.types.StorageChannelTask$Abstract.waitOnCompletion(StorageChannelTask.java:176)
	at testapp.war//one.microstream.storage.types.StorageSystem$Default.startThreads(StorageSystem.java:336)
	at testapp.war//one.microstream.storage.types.StorageSystem$Default.internalStartUp(StorageSystem.java:516)
	at testapp.war//one.microstream.storage.types.StorageSystem$Default.start(StorageSystem.java:600)
	at testapp.war//one.microstream.storage.types.StorageSystem$Default.start(StorageSystem.java:78)
	at testapp.war//one.microstream.storage.embedded.types.EmbeddedStorageManager$Default.start(EmbeddedStorageManager.java:245)
	at testapp.war//one.microstream.storage.embedded.types.EmbeddedStorageManager$Default.start(EmbeddedStorageManager.java:97)
	at testapp.war//one.microstream.storage.embedded.types.EmbeddedStorageFoundation.start(EmbeddedStorageFoundation.java:241)
	at testapp.war//one.microstream.storage.embedded.types.EmbeddedStorageFoundation.start(EmbeddedStorageFoundation.java:209)
	...
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
	at java.base/java.lang.reflect.Method.invoke(Method.java:577)
	at [email protected]//org.jboss.as.ee.component.ManagedReferenceLifecycleMethodInterceptor.processInvocation(ManagedReferenceLifecycleMethodInterceptor.java:96)
	at [email protected]//org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
	at [email protected]//org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:509)
	at [email protected]//org.jboss.as.weld.interceptors.Jsr299BindingsInterceptor.delegateInterception(Jsr299BindingsInterceptor.java:79)
	at [email protected]//org.jboss.as.weld.interceptors.Jsr299BindingsInterceptor.doLifecycleInterception(Jsr299BindingsInterceptor.java:126)
	at [email protected]//org.jboss.as.weld.interceptors.Jsr299BindingsInterceptor.processInvocation(Jsr299BindingsInterceptor.java:112)
	at [email protected]//org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
	at [email protected]//org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:509)
	at [email protected]//org.jboss.weld.module.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:81)
	at [email protected]//org.jboss.as.weld.ejb.EjbRequestScopeActivationInterceptor.processInvocation(EjbRequestScopeActivationInterceptor.java:89)
	at [email protected]//org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
	at [email protected]//org.jboss.as.weld.injection.WeldInjectionInterceptor.processInvocation(WeldInjectionInterceptor.java:53)
	at [email protected]//org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
	at [email protected]//org.jboss.as.ee.component.AroundConstructInterceptorFactory$1.processInvocation(AroundConstructInterceptorFactory.java:28)
	at [email protected]//org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
	at [email protected]//org.jboss.as.weld.injection.WeldInterceptorInjectionInterceptor.processInvocation(WeldInterceptorInjectionInterceptor.java:56)
	at [email protected]//org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
	at [email protected]//org.jboss.as.weld.interceptors.Jsr299BindingsCreateInterceptor.processInvocation(Jsr299BindingsCreateInterceptor.java:111)
	at [email protected]//org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
	at [email protected]//org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)
	at [email protected]//org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:422)
	at [email protected]//org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:254)
	... 28 more
Caused by: one.microstream.storage.exceptions.StorageException
	at testapp.war//one.microstream.storage.types.StorageFileManager$Default.readTransactionsFile(StorageFileManager.java:722)
	at testapp.war//one.microstream.storage.types.StorageFileManager$Default.readStorage(StorageFileManager.java:688)
	at testapp.war//one.microstream.storage.types.StorageChannel$Default.readStorage(StorageChannel.java:728)
	at testapp.war//one.microstream.storage.types.StorageChannelTaskInitialize$Default.internalProcessBy(StorageChannelTaskInitialize.java:193)
	at testapp.war//one.microstream.storage.types.StorageChannelTaskInitialize$Default.internalProcessBy(StorageChannelTaskInitialize.java:36)
	at testapp.war//one.microstream.storage.types.StorageChannelTask$Abstract.processBy(StorageChannelTask.java:252)
	at testapp.war//one.microstream.storage.types.StorageChannel$Default.work(StorageChannel.java:409)
	at testapp.war//one.microstream.storage.types.StorageChannel$Default.run(StorageChannel.java:492)
	at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: one.microstream.storage.exceptions.StorageExceptionConsistency: 0 Inconsistent timestamp of file 24: 1693286556923000000 <= 1693288346410000000
	at testapp.war//one.microstream.storage.types.StorageTransactionsAnalysis$EntryAggregator.handleEntryStore(StorageTransactionsAnalysis.java:783)
	at testapp.war//one.microstream.storage.types.StorageTransactionsAnalysis$EntryAggregator.accept(StorageTransactionsAnalysis.java:701)
	at testapp.war//one.microstream.storage.types.StorageTransactionsAnalysis$Logic.processBufferedEntities(StorageTransactionsAnalysis.java:381)
	at testapp.war//one.microstream.storage.types.StorageTransactionsAnalysis$Logic.processInputFile(StorageTransactionsAnalysis.java:343)
	at testapp.war//one.microstream.storage.types.StorageTransactionsAnalysis$Logic.processInputFile(StorageTransactionsAnalysis.java:301)
	at testapp.war//one.microstream.storage.types.StorageLiveTransactionsFile$Default.processBy(StorageLiveTransactionsFile.java:93)
	at testapp.war//one.microstream.storage.types.StorageFileManager$Default.readTransactionsFile(StorageFileManager.java:716)
	... 8 more

09:15:26,132 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("deploy") failed - address: ([("deployment" => "testapp.war")]) - failure description: {"WFLYCTL0080: Failed services" => {"jboss.deployment.unit.\"testapp.war\".component.App.START" => "java.lang.IllegalStateException: WFLYEE0042: Failed to construct component instance
    Caused by: java.lang.IllegalStateException: WFLYEE0042: Failed to construct component instance
    Caused by: jakarta.ejb.EJBException: one.microstream.storage.exceptions.StorageException: Problem in channel #0
    Caused by: one.microstream.storage.exceptions.StorageException: Problem in channel #0
    Caused by: one.microstream.storage.exceptions.StorageException
    Caused by: one.microstream.storage.exceptions.StorageExceptionConsistency: 0 Inconsistent timestamp of file 24: 1693286556923000000 <= 1693288346410000000"}}
  1. Then I restarted the server and the above stacktrace happened. However, I can no longer reproduce this stacktrace. So maybe the reason is something else, I don't know.

Expected behavior

The memory should not be damaged afterwards. Perhaps it should throw an exception at the time before the corruption to avoid corruption.

@hg-ms
Copy link
Contributor

hg-ms commented Aug 30, 2023

You can try to delete all transactions_0.sft in the storage channel directories.
In that case the storage tries to start without checking transaction consistency.

The problem may be caused by #634.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants