DependencyTrack / DependencyTrack/dependency-track

sBOM upload : "An unknown error occurred in an asynchronous event or notification thread"

Open
#2,793 3 comments 0 reactions 0 assignees View on GitHub
defect in triage
Dominant language
Java
Stars
4.2k
Forks
811
Avg merge
8h 39m
Merged PRs (30d)
237

Description

### Current Behavior

either I'm uploading a sBOM via the web UI or the jenkins plugin, I can't get the analysis done.

[sbom-front.txt](https://github.com/DependencyTrack/dependency-track/files/11604836/sbom-front.txt)

`2023-05-30 20:02:27,347 ERROR [LoggableUncaughtExceptionHandler] An unknown error occurred in an asynchronous event or notification thread
java.lang.StackOverflowError: null
at java.base/java.io.ObjectInputStream$BlockDataInputStream.readUnsignedShort(Unknown Source)
at java.base/java.io.ObjectInputStream$BlockDataInputStream.readUTF(Unknown Source)
at java.base/java.io.ObjectInputStream.readUTF(Unknown Source)
at java.base/java.io.ObjectStreamClass.readNonProxy(Unknown Source)
at java.base/java.io.ObjectInputStream.readClassDescriptor(Unknown Source)
at java.base/java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
at java.base/java.io.ObjectInputStream.readClassDesc(Unknown Source)
at java.base/java.io.ObjectInputStream.readEnum(Unknown Source)
at java.base/java.io.ObjectInputStream.readObject0(Unknown Source)
at java.base/java.io.ObjectInputStream$FieldValues.(Unknown Source)
at java.base/java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.base/java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.base/java.io.ObjectInputStream.readObject0(Unknown Source)
at java.base/java.io.ObjectInputStream.readObject(Unknown Source)
at java.base/java.io.ObjectInputStream.readObject(Unknown Source)
at java.base/java.util.ArrayList.readObject(Unknown Source)
at java.base/jdk.internal.reflect.GeneratedMethodAccessor199.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at java.base/java.io.ObjectStreamClass.invokeReadObject(Unknown Source)
at java.base/java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.base/java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.base/java.io.ObjectInputStream.readObject0(Unknown Source)
at java.base/java.io.ObjectInputStream.readObject(Unknown Source)
at java.base/java.io.ObjectInputStream.readObject(Unknown Source)
at org.datanucleus.store.rdbms.mapping.column.BlobImpl.getObject(BlobImpl.java:120)
at org.datanucleus.store.rdbms.mapping.column.AbstractLargeBinaryColumnMapping.getObjectForBytes(AbstractLargeBinaryColumnMapping.java:255)
at org.datanucleus.store.rdbms.mapping.column.AbstractLargeBinaryColumnMapping.getObject(AbstractLargeBinaryColumnMapping.java:389)
at org.datanucleus.store.rdbms.mapping.java.AbstractContainerMapping.getObject(AbstractContainerMapping.java:281)
at org.datanucleus.store.rdbms.fieldmanager.ResultSetGetter.fetchObjectField(ResultSetGetter.java:181)
at org.datanucleus.state.StateManagerImpl.replacingObjectField(StateManagerImpl.java:2045)
at org.dependencytrack.model.Component.dnReplaceField(Component.java)
at org.dependencytrack.model.Component.dnReplaceFields(Component.java)
at org.datanucleus.state.StateManagerImpl.replaceFields(StateManagerImpl.java:4342)
at org.datanucleus.state.StateManagerImpl.replaceFields(StateManagerImpl.java:4366)
at org.datanucleus.store.rdbms.request.FetchRequest.execute(FetchRequest.java:502)
at org.datanucleus.store.rdbms.RDBMSPersistenceHandler.fetchObject(RDBMSPersistenceHandler.java:354)
at org.datanucleus.state.StateManagerImpl.loadFieldsFromDatastore(StateManagerImpl.java:1608)
at org.datanucleus.state.StateManagerImpl.refreshFieldsInFetchPlan(StateManagerImpl.java:4007)
at org.datanucleus.api.jdo.state.PersistentNontransactional.transitionRefresh(PersistentNontransactional.java:93)
at org.datanucleus.state.StateManagerImpl.refresh(StateManagerImpl.java:1007)
at org.datanucleus.ExecutionContextImpl.refreshObject(ExecutionContextImpl.java:1602)
at org.datanucleus.api.jdo.JDOPersistenceManager.jdoRefresh(JDOPersistenceManager.java:490)
at org.datanucleus.api.jdo.JDOPersistenceManager.refresh(JDOPersistenceManager.java:507)
at alpine.persistence.AbstractAlpineQueryManager.persist(AbstractAlpineQueryManager.java:430)
at org.dependencytrack.persistence.ComponentQueryManager.createComponent(ComponentQueryManager.java:306)
at org.dependencytrack.persistence.QueryManager.createComponent(QueryManager.java:516)
at org.dependencytrack.tasks.BomUploadProcessingTask.processComponent(BomUploadProcessingTask.java:206)
at org.dependencytrack.tasks.BomUploadProcessingTask.processComponent(BomUploadProcessingTask.java:216)`

### Steps to Reproduce

1. use the provided sbom
2. upload it 1 time, it works fine
3. upload it a 2nd time, then you got the stack trace in the logs.

### Expected Behavior

the analysis should be executed and the results shown

### Dependency-Track Version

4.8.2

### Dependency-Track Distribution

Container Image

### Database Server

PostgreSQL

### Database Server Version

_No response_

### Browser

Google Chrome

### Checklist

- [X] I have read and understand the [contributing guidelines](https://github.com/DependencyTrack/dependency-track/blob/master/CONTRIBUTING.md#filing-issues)
- [X] I have checked the [existing issues](https://github.com/DependencyTrack/dependency-track/issues) for whether this defect was already reported

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.