-
Notifications
You must be signed in to change notification settings - Fork 244
Race condition in model loading #1448
Copy link
Copy link
Closed
Description
I've seen this twice now in CI for smithy-rs:
Projection ec2 failed: java.lang.IllegalStateException: Recursive update
java.base/java.util.concurrent.ConcurrentHashMap.replaceNode(ConcurrentHashMap.java:1167)
java.base/java.util.concurrent.ConcurrentHashMap.remove(ConcurrentHashMap.java:1102)
software.amazon.smithy.model.shapes.ShapeId$ShapeIdFactory.lambda$create$0(ShapeId.java:485)
java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1705)
software.amazon.smithy.model.shapes.ShapeId$ShapeIdFactory.create(ShapeId.java:466)
software.amazon.smithy.model.shapes.ShapeId.from(ShapeId.java:79)
software.amazon.smithy.model.node.StringNode.expectShapeId(StringNode.java:165)
software.amazon.smithy.model.loader.AstModelLoader.loadReferenceBody(AstModelLoader.java:394)
software.amazon.smithy.model.loader.AstModelLoader.lambda$loadOptionalTarget$7(AstModelLoader.java:388)
java.base/java.util.Optional.map(Optional.java:265)
software.amazon.smithy.model.loader.AstModelLoader.loadOptionalTarget(AstModelLoader.java:388)
software.amazon.smithy.model.loader.AstModelLoader.loadOperation(AstModelLoader.java:270)
software.amazon.smithy.model.loader.AstModelLoader.loadShape(AstModelLoader.java:194)
software.amazon.smithy.model.loader.AstModelLoader.lambda$loadShapes$1(AstModelLoader.java:135)
java.base/java.util.Optional.ifPresent(Optional.java:183)
software.amazon.smithy.model.loader.AstModelLoader.loadShapes(AstModelLoader.java:128)
software.amazon.smithy.model.loader.AstModelLoader.parse(AstModelLoader.java:108)
software.amazon.smithy.model.loader.ModelLoader.loadParsedNode(ModelLoader.java:95)
software.amazon.smithy.model.loader.ModelLoader.load(ModelLoader.java:74)
software.amazon.smithy.model.loader.ModelAssembler.assemble(ModelAssembler.java:543)
software.amazon.smithy.build.SmithyBuildImpl.applyProjection(SmithyBuildImpl.java:244)
software.amazon.smithy.build.SmithyBuildImpl.executeSerialProjection(SmithyBuildImpl.java:209)
software.amazon.smithy.build.SmithyBuildImpl.lambda$applyAllProjections$5(SmithyBuildImpl.java:182)
java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655)
java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
java.base/java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:290)
java.base/java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:746)
java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
java.base/java.util.concurrent.ForkJoinTask.doInvoke(ForkJoinTask.java:408)
java.base/java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:736)
java.base/java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:159)
java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:173)
java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497)
java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:661)
software.amazon.smithy.build.SmithyBuildImpl.applyAllProjections(SmithyBuildImpl.java:192)
software.amazon.smithy.build.SmithyBuild.build(SmithyBuild.java:160)
software.amazon.smithy.cli.commands.BuildCommand.run(BuildCommand.java:158)
software.amazon.smithy.cli.commands.SimpleCommand.execute(SimpleCommand.java:60)
software.amazon.smithy.cli.commands.SmithyCommand.execute(SmithyCommand.java:88)
software.amazon.smithy.cli.Cli.run(Cli.java:80)
software.amazon.smithy.cli.SmithyCli.run(SmithyCli.java:86)
software.amazon.smithy.cli.SmithyCli.run(SmithyCli.java:76)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.base/java.lang.reflect.Method.invoke(Method.java:566)
software.amazon.smithy.gradle.SmithyUtils.lambda$executeCliThread$2(SmithyUtils.java:302)
java.base/java.lang.Thread.run(Thread.java:829)
It doesn't happen often, but it does cause failed releases for both smithy-rs and the AWS Rust SDK.
Smithy version: 1.25.0
JDK: Amazon Corretto Java 11 headless (x86-64)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels