Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NPE while deploying #30972

Closed
ddashenkov opened this issue Apr 19, 2024 · 2 comments
Closed

NPE while deploying #30972

ddashenkov opened this issue Apr 19, 2024 · 2 comments
Assignees
Milestone

Comments

@ddashenkov
Copy link

ddashenkov commented Apr 19, 2024

I'm experiencing a NullPointerException (see the stacktrace below) resulting in a 500 status when deploying Vespa.

It seems to have appeared after I've changed a field from indexing: attribute to indexing: attribute | index. Here is a snippet of the schema:

schema product {

    document product {

        ...

        field nesteds type array<Nested> {
            struct-field foo {
-               indexing: attribute
+               indexing: attribute | index
                match: exact
            }
        }
        
        struct Nested {
            field foo type string {}
        }
    }
}

When I do vespa deploy, the process fails with a 500 HTTP status. The docker container's logs contain the following message:

Unexpected error building default.default\nexception=\njava.lang.NullPointerException
at java.base/java.util.Objects.requireNonNull(Objects.java:209)
at java.base/java.util.TreeMap.getEntry(TreeMap.java:345)
at java.base/java.util.TreeMap.get(TreeMap.java:279)
at com.yahoo.schema.Schema.getAttribute(Schema.java:659)
at com.yahoo.schema.processing.TypedTransformProvider.requiresTransform(TypedTransformProvider.java:33)
at com.yahoo.vespa.indexinglanguage.ValueTransformProvider.shouldConvert(ValueTransformProvider.java:41)
at com.yahoo.vespa.indexinglanguage.ExpressionConverter.convert(ExpressionConverter.java:13)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.LinkedList$LLSpliterator.forEachRemaining(LinkedList.java:1242)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:575)
at java.base/java.util.stream.AbstractPipeline.evaluateToArrayNode(AbstractPipeline.java:260)
at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:616)
at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:622)
at java.base/java.util.stream.ReferencePipeline.toList(ReferencePipeline.java:627)
at com.yahoo.vespa.indexinglanguage.expressions.StatementExpression.convertChildren(StatementExpression.java:53)
at com.yahoo.vespa.indexinglanguage.expressions.StatementExpression.convertChildren(StatementExpression.java:24)
at com.yahoo.vespa.indexinglanguage.ExpressionConverter.convert(ExpressionConverter.java:16)
at com.yahoo.vespa.indexinglanguage.expressions.ScriptExpression.lambda$convertChildren$0(ScriptExpression.java:43)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.LinkedList$LLSpliterator.forEachRemaining(LinkedList.java:1242)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:575)
at java.base/java.util.stream.AbstractPipeline.evaluateToArrayNode(AbstractPipeline.java:260)
at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:616)
at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:622)
at java.base/java.util.stream.ReferencePipeline.toList(ReferencePipeline.java:627)
at com.yahoo.vespa.indexinglanguage.expressions.ScriptExpression.convertChildren(ScriptExpression.java:45)
at com.yahoo.vespa.indexinglanguage.expressions.ScriptExpression.convertChildren(ScriptExpression.java:26)
at com.yahoo.vespa.indexinglanguage.ExpressionConverter.convert(ExpressionConverter.java:16)
at com.yahoo.schema.processing.ExactMatch.implementExactMatch(ExactMatch.java:78)
at com.yahoo.schema.processing.ExactMatch.processField(ExactMatch.java:44)
at com.yahoo.schema.processing.ExactMatch.processField(ExactMatch.java:49)
at com.yahoo.schema.processing.ExactMatch.process(ExactMatch.java:37)
at com.yahoo.schema.processing.Processor.process(Processor.java:67)
at com.yahoo.schema.processing.Processing.runProcessor(Processing.java:109)
at com.yahoo.schema.processing.Processing.lambda$process$2(Processing.java:130)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
at com.yahoo.schema.processing.Processing.process(Processing.java:130)
at com.yahoo.schema.Application.<init>(Application.java:76)
at com.yahoo.schema.ApplicationBuilder.build(ApplicationBuilder.java:227)
at com.yahoo.config.model.deploy.DeployState$Builder.build(DeployState.java:472)
at com.yahoo.vespa.model.VespaModelFactory.createDeployState(VespaModelFactory.java:204)
at com.yahoo.vespa.model.VespaModelFactory.createAndValidateModel(VespaModelFactory.java:151)
at com.yahoo.vespa.config.server.modelfactory.PreparedModelsBuilder.createAndValidateModel(PreparedModelsBuilder.java:147)
at com.yahoo.vespa.config.server.modelfactory.PreparedModelsBuilder.buildModelVersion(PreparedModelsBuilder.java:135)
at com.yahoo.vespa.config.server.modelfactory.PreparedModelsBuilder.buildModelVersion(PreparedModelsBuilder.java:58)
at com.yahoo.vespa.config.server.modelfactory.ModelsBuilder.buildModelVersions(ModelsBuilder.java:186)
at com.yahoo.vespa.config.server.modelfactory.ModelsBuilder.buildModels(ModelsBuilder.java:120)
at com.yahoo.vespa.config.server.session.SessionPreparer$Preparation.buildModels(SessionPreparer.java:339)
at com.yahoo.vespa.config.server.session.SessionPreparer.prepare(SessionPreparer.java:149)
at com.yahoo.vespa.config.server.session.SessionRepository.prepareLocalSession(SessionRepository.java:270)
at com.yahoo.vespa.config.server.deploy.Deployment.prepare(Deployment.java:113)
at com.yahoo.vespa.config.server.ApplicationRepository.prepare(ApplicationRepository.java:361)
at com.yahoo.vespa.config.server.ApplicationRepository.deploy(ApplicationRepository.java:391)
at com.yahoo.vespa.config.server.ApplicationRepository.deploy(ApplicationRepository.java:374)
at com.yahoo.vespa.config.server.http.v2.ApplicationApiHandler.handlePOST(ApplicationApiHandler.java:133)
at com.yahoo.vespa.config.server.http.HttpHandler.handle(HttpHandler.java:40)
at com.yahoo.container.jdisc.ThreadedHttpRequestHandler.handle(ThreadedHttpRequestHandler.java:77)
at com.yahoo.container.jdisc.ThreadedHttpRequestHandler.handleRequest(ThreadedHttpRequestHandler.java:87)
at com.yahoo.container.jdisc.ThreadedRequestHandler$RequestTask.processRequest(ThreadedRequestHandler.java:191)
at com.yahoo.container.jdisc.ThreadedRequestHandler$RequestTask.run(ThreadedRequestHandler.java:185)
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)\n

Environment:

  • OS: macOS 14.4.1 (M2)
  • Infrastructure: self-hosted

Vespa version
8.316.57

@ddashenkov ddashenkov changed the title An NPE while deploying NPE while deploying Apr 19, 2024
@geirst geirst added this to the soon milestone Apr 24, 2024
@geirst
Copy link
Member

geirst commented Apr 24, 2024

We should improve the error message. Using "index" inside a struct field is currently not supported.

@geirst
Copy link
Member

geirst commented May 7, 2024

The error message is improved in Vespa 8.341.17 (#31144).

@geirst geirst closed this as completed May 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants