Skip to content

Regression in content pack uninstall #22059

@patrickmann

Description

@patrickmann

#17828 seems to have introduced a regression. Uninstalling a content pack throws an exception.

Expected Behavior

No exception

Current Behavior

Content pack entities are cleanly removed. But an exception occurs in building the response object:

2025-03-20 15:37:48,535 WARN : org.graylog.plugins.auditlog.jersey.AuditLogFilter - Couldn't capture response entity
java.lang.IllegalArgumentException: No serializer found for class org.graylog2.contentpacks.facades.AutoValue_InputWithExtractors and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: com.google.common.collect.RegularImmutableMap["uninstalled"]->org.graylog2.contentpacks.model.AutoValue_ContentPackUninstallation["entity_objects"]->com.google.common.collect.SingletonImmutableBiMap["62c1ea1b-e334-435f-99e5-572289fb51b6"])
at com.fasterxml.jackson.databind.ObjectMapper._convert(ObjectMapper.java:4644) ~[jackson-databind-2.18.3.jar:2.18.3]
at com.fasterxml.jackson.databind.ObjectMapper.convertValue(ObjectMapper.java:4585) ~[jackson-databind-2.18.3.jar:2.18.3]
at org.graylog2.audit.jersey.ResponseEntityConverter.convertValue(ResponseEntityConverter.java:45) ~[classes/:?]
at org.graylog.plugins.auditlog.jersey.AuditLogFilter.readResponseEntity(AuditLogFilter.java:185) ~[classes/:?]
at org.graylog.plugins.auditlog.jersey.AuditLogFilter.lambda$filter$4(AuditLogFilter.java:145) ~[classes/:?]
at java.base/java.util.Optional.ifPresent(Optional.java:178) [?:?]
at org.graylog.plugins.auditlog.jersey.AuditLogFilter.filter(AuditLogFilter.java:116) [classes/:?]
at org.glassfish.jersey.server.ContainerFilteringStage$ResponseFilterStage.apply(ContainerFilteringStage.java:172) [jersey-server-3.1.10.jar:?]
at org.glassfish.jersey.server.ContainerFilteringStage$ResponseFilterStage.apply(ContainerFilteringStage.java:139) [jersey-server-3.1.10.jar:?]
at org.glassfish.jersey.process.internal.Stages.process(Stages.java:147) [jersey-common-3.1.10.jar:?]
at org.glassfish.jersey.server.ServerRuntime$Responder.processResponse(ServerRuntime.java:396) [jersey-server-3.1.10.jar:?]
at org.glassfish.jersey.server.ServerRuntime$Responder.process(ServerRuntime.java:388) [jersey-server-3.1.10.jar:?]
at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:277) [jersey-server-3.1.10.jar:?]
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:248) [jersey-common-3.1.10.jar:?]
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:244) [jersey-common-3.1.10.jar:?]
at org.glassfish.jersey.internal.Errors.process(Errors.java:292) [jersey-common-3.1.10.jar:?]
at org.glassfish.jersey.internal.Errors.process(Errors.java:274) [jersey-common-3.1.10.jar:?]
at org.glassfish.jersey.internal.Errors.process(Errors.java:244) [jersey-common-3.1.10.jar:?]
at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:266) [jersey-common-3.1.10.jar:?]
at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:253) [jersey-server-3.1.10.jar:?]
at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:696) [jersey-server-3.1.10.jar:?]
at org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpContainer.service(GrizzlyHttpContainer.java:367) [jersey-container-grizzly2-http-3.1.10.jar:?]
at org.glassfish.grizzly.http.server.HttpHandler$1.run(HttpHandler.java:190) [grizzly-http-server-4.0.2.jar:4.0.2]
at com.codahale.metrics.InstrumentedExecutorService$InstrumentedRunnable.run(InstrumentedExecutorService.java:259) [metrics-core-4.2.30.jar:4.2.30]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?]
at java.base/java.lang.Thread.run(Thread.java:840) [?:?]
Caused by: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class org.graylog2.contentpacks.facades.AutoValue_InputWithExtractors and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: com.google.common.collect.RegularImmutableMap["uninstalled"]->org.graylog2.contentpacks.model.AutoValue_ContentPackUninstallation["entity_objects"]->com.google.common.collect.SingletonImmutableBiMap["62c1ea1b-e334-435f-99e5-572289fb51b6"])

It appears to be due to this new line (and related code):

.entityObjects(ImmutableMap.copyOf(removedEntityObjects))

Steps to Reproduce (for bugs)

  1. Create a content pack with a single input; delete that input
  2. Install it; observe that input is created
  3. Uninstall it; observe that input is removed
  4. An exception is generated

Context

Your Environment

  • Graylog Version: 6.2 beta 1

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions