Bug 2076684

Summary: NullPointerException during manifest refresh
Product: Red Hat Satellite Reporter: Joniel Pasqualetto <jpasqual>
Component: CandlepinAssignee: satellite6-bugs <satellite6-bugs>
Status: CLOSED ERRATA QA Contact: Lai <ltran>
Severity: high Docs Contact:
Priority: high    
Version: 6.10.4CC: ahumbe, bbuckingham, jpasqual, nmoumoul, pcreech, redakkan
Target Milestone: 6.11.0Keywords: Triaged
Target Release: Unused   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: candlepin-4.1.13-1 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
: 2076952 2076954 2076955 2080340 (view as bug list) Environment:
Last Closed: 2022-07-05 14:35:13 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 2076952, 2076954, 2076955    
Bug Blocks:    

Description Joniel Pasqualetto 2022-04-19 16:29:56 UTC
Description of problem:

While refreshing a manifest (or trying to import it), Candlepin fails with following error:

~~~
2022-04-19 07:08:24,055 [thread=Thread-2 (ActiveMQ-client-global-threads)] [job=2c99846180417e8a0180418245a00001, job_key=ImportJob, org=ORGANIZATION, csid=47cefa67-37d3-4386-b669-121f361ecd64] ERROR org.candlepin.async.JobManager - Job "Import Manifest" failed in 5682ms
org.candlepin.async.JobExecutionException: Unexpected exception occured while executing transactional block
        at org.candlepin.async.tasks.ImportJob.execute(ImportJob.java:249)
        at org.candlepin.async.JobManager.executeJob(JobManager.java:1333)
        at org.candlepin.async.JobMessageReceiver$MessageListener.handleMessage(JobMessageReceiver.java:394)
        at org.candlepin.messaging.impl.artemis.ArtemisConsumer$ArtemisMessageForwarder.onMessage(ArtemisConsumer.java:59)
        at org.apache.activemq.artemis.core.client.impl.ClientConsumerImpl.callOnMessage(ClientConsumerImpl.java:1030)
        at org.apache.activemq.artemis.core.client.impl.ClientConsumerImpl.access$400(ClientConsumerImpl.java:49)
        at org.apache.activemq.artemis.core.client.impl.ClientConsumerImpl$Runner.run(ClientConsumerImpl.java:1153)
        at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:42)
        at org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:31)
        at org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:65)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118)
Caused by: org.candlepin.util.TransactionExecutionException: Unexpected exception occured while executing transactional block
        at org.candlepin.util.Transactional.executeNested(Transactional.java:379)
        at org.candlepin.util.Transactional.execute(Transactional.java:501)
        at org.candlepin.controller.CandlepinPoolManager.refreshPoolsWithRegeneration(CandlepinPoolManager.java:370)
        at org.candlepin.controller.Refresher.run(Refresher.java:154)
        at org.candlepin.sync.Importer.importObjects(Importer.java:602)
        at com.google.inject.persist.jpa.JpaLocalTxnInterceptor.invoke(JpaLocalTxnInterceptor.java:56)
        at org.candlepin.sync.Importer.doExport(Importer.java:429)
        at org.candlepin.sync.Importer.loadStoredExport(Importer.java:210)
        at org.candlepin.controller.ManifestManager.importStoredManifest(ManifestManager.java:220)
        at com.google.inject.persist.jpa.JpaLocalTxnInterceptor.invoke(JpaLocalTxnInterceptor.java:64)
        at org.candlepin.async.tasks.ImportJob.execute(ImportJob.java:229)
        ... 12 common frames omitted
Caused by: java.lang.NullPointerException: null
        at org.candlepin.model.Product.lambda$checkForCycle$2(Product.java:1400)
        at java.base/java.util.stream.MatchOps$1MatchSink.accept(MatchOps.java:90)
        at java.base/java.util.HashMap$KeySpliterator.tryAdvance(HashMap.java:1642)
        at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:127)
        at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:502)
        at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:488)
        at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
        at java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:230)
        at java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:196)
        at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
        at java.base/java.util.stream.ReferencePipeline.anyMatch(ReferencePipeline.java:528)
        at org.candlepin.model.Product.checkForCycle(Product.java:1399)
        at org.candlepin.model.Product.checkForCycle(Product.java:1426)
        at org.candlepin.model.Product.setProvidedProducts(Product.java:1439)
        at org.candlepin.model.ProductCurator.hydratePoolProvidedProducts(ProductCurator.java:311)
        at org.candlepin.controller.CandlepinPoolManager.deletePools(CandlepinPoolManager.java:2394)
        at com.google.inject.persist.jpa.JpaLocalTxnInterceptor.invoke(JpaLocalTxnInterceptor.java:56)
        at org.candlepin.controller.CandlepinPoolManager.deletePools(CandlepinPoolManager.java:2160)
        at org.candlepin.controller.CandlepinPoolManager.lambda$refreshPoolsWithRegeneration$0(CandlepinPoolManager.java:325)
        at org.candlepin.util.Transactional.executeNested(Transactional.java:376)
        ... 22 common frames omitted
~~~
Version-Release number of selected component (if applicable):

candlepin-4.0.16-1.el7sat.noarch

How reproducible:

Unsure, happens on customer environment.

Steps to Reproduce:
1.
2.
3.

Actual results:
Can't refresh manifest

Expected results:
manifest to be refreshed without errors

Additional info:

Comment 3 Lai 2022-05-16 15:46:48 UTC
steps to retest:

1. Import a manifest on satellite UI
2. Refresh manifest a few times
3. Check the candlepin.log


Expected:
The candlepin.log should not have any NullPointerException errors.

Actual:
The candlepin.log does not have any NullPointerException errors.  Also the UI does refresh the manifest successfully.

Verified on 6.11 snap 20 with candlepin-4.1.13-1.el7sat.noarch on both rhel7 and rhel8.


Note: I did try with this multiple manifests to ensure refresh works as expected.

Comment 6 errata-xmlrpc 2022-07-05 14:35:13 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (Moderate: Satellite 6.11 Release), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2022:5498

Comment 7 Brad Buckingham 2022-12-09 18:53:31 UTC
*** Bug 2080340 has been marked as a duplicate of this bug. ***