You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@knox.apache.org by "Attila Magyar (Jira)" <ji...@apache.org> on 2021/11/30 13:43:00 UTC
[jira] [Commented] (KNOX-2694) StoreAndForwardAppenderTest.testAppender is intermittently failing with NPE
[ https://issues.apache.org/jira/browse/KNOX-2694?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17451128#comment-17451128 ]
Attila Magyar commented on KNOX-2694:
-------------------------------------
The NPE comes from the constructor of JdbmQueue this is a persistent queue from a third party library.
{code:java}
queue = new JdbmQueue<>(new File(file)); // NPE {code}
It creates the file and reads some data back. Parallel execution likely corrupts the file and causes the NPE.
> StoreAndForwardAppenderTest.testAppender is intermittently failing with NPE
> ---------------------------------------------------------------------------
>
> Key: KNOX-2694
> URL: https://issues.apache.org/jira/browse/KNOX-2694
> Project: Apache Knox
> Issue Type: Task
> Reporter: Attila Magyar
> Assignee: Attila Magyar
> Priority: Major
>
> {code:java}
> [INFO] Running org.apache.knox.gateway.audit.JdbmQueueTest
> 58592021-11-30 07:48:55,775 main ERROR Unable to invoke factory method in class org.apache.knox.gateway.audit.log4j.appender.JdbmStoreAndForwardAppender for element JdbmStoreAndForwardAppender: java.lang.NullPointerException java.lang.reflect.InvocationTargetException
> 5860 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 5861 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> 5862 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 5863 at java.lang.reflect.Method.invoke(Method.java:498)
> 5864 at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:136)
> 5865 at org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:1002)
> 5866 at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:942)
> 5867 at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:934)
> 5868 at org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:552)
> 5869 at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:241)
> 5870 at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:288)
> 5871 at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:622)
> 5872 at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:695)
> 5873 at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:712)
> 5874 at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:267)
> 5875 at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:155)
> 5876 at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:47)
> 5877 at org.apache.logging.log4j.LogManager.getContext(LogManager.java:194)
> 5878 at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getContext(AbstractLoggerAdapter.java:138)
> 5879 at org.apache.logging.slf4j.Log4jLoggerFactory.getContext(Log4jLoggerFactory.java:45)
> 5880 at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:48)
> 5881 at org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:30)
> 5882 at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:363)
> 5883 at jdbm.recman.BaseRecordManager.<clinit>(BaseRecordManager.java:94)
> 5884 at jdbm.recman.Provider.createRecordManager(Provider.java:83)
> 5885 at jdbm.RecordManagerFactory.createRecordManager(RecordManagerFactory.java:113)
> 5886 at org.apache.knox.gateway.audit.log4j.appender.JdbmQueue.<init>(JdbmQueue.java:41)
> 5887 at org.apache.knox.gateway.audit.JdbmQueueTest.setUp(JdbmQueueTest.java:45)
> 5888 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 5889 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> 5890 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 5891 at java.lang.reflect.Method.invoke(Method.java:498)
> 5892 at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
> 5893 at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
> 5894 at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
> 5895 at org.junit.internal.runners.statements.RunBefores.invokeMethod(RunBefores.java:33)
> 5896 at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
> 5897 at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
> 5898 at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
> 5899 at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
> 5900 at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
> 5901 at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
> 5902 at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
> 5903 at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
> 5904 at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
> 5905 at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
> 5906 at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
> 5907 at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
> 5908 at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
> 5909 at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
> 5910 at org.junit.runners.Suite.runChild(Suite.java:128)
> 5911 at org.junit.runners.Suite.runChild(Suite.java:27)
> 5912 at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
> 5913 at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
> 5914 at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
> 5915 at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
> 5916 at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
> 5917 at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
> 5918 at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
> 5919 at org.apache.maven.surefire.junitcore.JUnitCore.run(JUnitCore.java:55)
> 5920 at org.apache.maven.surefire.junitcore.JUnitCoreWrapper.createRequestAndRun(JUnitCoreWrapper.java:137)
> 5921 at org.apache.maven.surefire.junitcore.JUnitCoreWrapper.executeEager(JUnitCoreWrapper.java:107)
> 5922 at org.apache.maven.surefire.junitcore.JUnitCoreWrapper.execute(JUnitCoreWrapper.java:83)
> 5923 at org.apache.maven.surefire.junitcore.JUnitCoreWrapper.execute(JUnitCoreWrapper.java:75)
> 5924 at org.apache.maven.surefire.junitcore.JUnitCoreProvider.invoke(JUnitCoreProvider.java:158)
> 5925 at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:383)
> 5926 at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:344)
> 5927 at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:125)
> 5928 at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:417)
> 5929Caused by: java.lang.NullPointerException
> 5930 at jdbm.recman.BaseRecordManager.insert(BaseRecordManager.java:310)
> 5931 at jdbm.recman.BaseRecordManager.insert(BaseRecordManager.java:286)
> 5932 at jdbm.recman.BaseRecordManager.getNameDirectory(BaseRecordManager.java:575)
> 5933 at jdbm.recman.BaseRecordManager.getNamedObject(BaseRecordManager.java:508)
> 5934 at jdbm.recman.CacheRecordManager.getNamedObject(CacheRecordManager.java:378)
> 5935 at org.apache.knox.gateway.audit.log4j.appender.JdbmQueue.findStat(JdbmQueue.java:124)
> 5936 at org.apache.knox.gateway.audit.log4j.appender.JdbmQueue.<init>(JdbmQueue.java:42)
> 5937 at org.apache.knox.gateway.audit.log4j.appender.JdbmStoreAndForwardAppender.<init>(JdbmStoreAndForwardAppender.java:48)
> 5938 at org.apache.knox.gateway.audit.log4j.appender.JdbmStoreAndForwardAppender.createAppender(JdbmStoreAndForwardAppender.java:64)
> 5939 ... 69 more
> 5940
> 59412021-11-30 07:48:55,783 main ERROR Null object returned for JdbmStoreAndForwardAppender in Appenders.
> 59422021-11-30 07:48:55,794 main ERROR Unable to locate appender "audit-store" for logger config "audit.store"
> 5943Running org.apache.knox.gateway.audit.JdbmQueueTest#testConcurrentConsumer
> 5944Running org.apache.knox.gateway.audit.JdbmQueueTest#testConcurrentProcessor
> 5945Running org.apache.knox.gateway.audit.JdbmQueueTest#testSimple
> 5946[INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.534 s - in org.apache.knox.gateway.audit.JdbmQueueTest
> 5947[INFO] Running org.apache.knox.gateway.audit.AuditServiceTest
> 5948[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.084 s - in org.apache.knox.gateway.audit.AuditServiceTest
> 5949[INFO] Running org.apache.knox.gateway.audit.StoreAndForwardAppenderTest
> 5950Running org.apache.knox.gateway.audit.StoreAndForwardAppenderTest#testAppender
> 5951Error: Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 500.013 s <<< FAILURE! - in org.apache.knox.gateway.audit.StoreAndForwardAppenderTest
> 5952Error: testAppender(org.apache.knox.gateway.audit.StoreAndForwardAppenderTest) Time elapsed: 500.012 s <<< ERROR!
> 5953org.junit.runners.model.TestTimedOutException: test timed out after 500000 milliseconds
> 5954 at org.apache.knox.gateway.audit.StoreAndForwardAppenderTest.testAppender(StoreAndForwardAppenderTest.java: {code}
--
This message was sent by Atlassian Jira
(v8.20.1#820001)