Skip to content

Concurrent mod exception when starting mod-shell #19

Description

@dzonekl

Hi,

I am trying to deploy mod-shell , but I get an exception [2].

It seems, the PluginLifeCycle is iterating over the PropertyDescriptor map, while it's still being populated.

We have our own module starter which looks like [1]

Any ideas?

[1] It picks the config for crashbusmod, and then deploys the module on the container.

private CompletableFuture<Void> deployModule(JsonObject modConfig) {
    final String modName = modConfig.getField("name");
    final JsonObject config = modConfig.getField("config");
    CompletableFuture<Void> future = new CompletableFuture<>();
    container.deployModule(modName, config, result -> {
        if (result.failed()) {
            LOG.error("Starting module " + modName + " failed.", result.cause());
            future.completeExceptionally(result.cause());
        } else {
            LOG.info("Module {} started successfully.", modName);
            future.complete(null);
        }
    });
    return future;
}

[2]
java.lang.RuntimeException: Could not start mod
at org.vertx.mods.CRaSHBusMod.start(CRaSHBusMod.java:46) ~[na:na]
at org.vertx.java.platform.Verticle.start(Verticle.java:82) ~[vertx-platform-2.1.5.jar:na]
at org.vertx.java.platform.impl.DefaultPlatformManager$21.run(DefaultPlatformManager.java:1758) ~[vertx-platform-2.1.5.jar:na]
at org.vertx.java.core.impl.DefaultContext$3.run(DefaultContext.java:175) [vertx-core-2.1.5.jar:na]
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:370) [netty-all-4.0.21.Final.jar:4.0.21.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:357) [netty-all-4.0.21.Final.jar:4.0.21.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116) [netty-all-4.0.21.Final.jar:4.0.21.Final]
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_25]
Caused by: java.util.ConcurrentModificationException: null
at java.util.HashMap$HashIterator.nextNode(HashMap.java:1429) ~[na:1.8.0_25]
at java.util.HashMap$ValueIterator.next(HashMap.java:1458) ~[na:1.8.0_25]
at java.util.Collections$UnmodifiableCollection$1.next(Collections.java:1042) ~[na:1.8.0_25]
at org.crsh.plugin.PluginLifeCycle.start(PluginLifeCycle.java:84) ~[na:na]
at org.vertx.mods.VertxPluginLifeCycle.start(VertxPluginLifeCycle.java:83) ~[na:na]
at org.vertx.mods.CRaSHBusMod.start(CRaSHBusMod.java:24) ~[na:na]
... 7 common frames omitted

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions