gitlab4j / gitlab4j-api

GitLab4J API (gitlab4j-api) provides a full featured Java client library for working with GitLab repositories via the GitLab REST API
MIT License
1.06k stars 460 forks source link

Commitstatus id's can exceed Integer range #805

Closed pnyheim closed 2 years ago

pnyheim commented 2 years ago

We got this error on our Jenkins buildserver today.

com.fasterxml.jackson.core.exc.InputCoercionException: Numeric value (2149088644) out of range of int (-2147483648 - 2147483647)
 at [Source: (org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$UnCloseableInputStream); line: 1, column: 17]
        at com.fasterxml.jackson.core.base.ParserMinimalBase._reportInputCoercion(ParserMinimalBase.java:601)
        at com.fasterxml.jackson.core.base.ParserMinimalBase.reportOverflowInt(ParserMinimalBase.java:570)
        at com.fasterxml.jackson.core.base.ParserBase.convertNumberToInt(ParserBase.java:889)
        at com.fasterxml.jackson.core.base.ParserBase._parseIntValue(ParserBase.java:802)
        at com.fasterxml.jackson.core.base.ParserBase.getIntValue(ParserBase.java:646)
        at com.fasterxml.jackson.databind.deser.std.NumberDeserializers$IntegerDeserializer.deserialize(NumberDeserializers.java:472)
        at com.fasterxml.jackson.databind.deser.std.NumberDeserializers$IntegerDeserializer.deserialize(NumberDeserializers.java:452)
        at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)
        at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:288)
Caused: com.fasterxml.jackson.databind.JsonMappingException: Numeric value (2149088644) out of range of int (-2147483648 - 2147483647)
 at [Source: (org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$UnCloseableInputStream); line: 1, column: 17] (through reference chain: org.gitlab4j.api.models.CommitStatus["id"])
        at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:397)
        at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:356)
        at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.wrapAndThrow(BeanDeserializerBase.java:1714)
        at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:290)
        at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:151)
        at com.fasterxml.jackson.databind.ObjectReader._bind(ObjectReader.java:1682)
        at com.fasterxml.jackson.databind.ObjectReader.readValue(ObjectReader.java:977)
        at com.fasterxml.jackson.jaxrs.base.ProviderBase.readFrom(ProviderBase.java:814)
        at org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$TerminalReaderInterceptor.invokeReadFrom(ReaderInterceptorExecutor.java:233)
        at org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$TerminalReaderInterceptor.aroundReadFrom(ReaderInterceptorExecutor.java:212)
        at org.glassfish.jersey.message.internal.ReaderInterceptorExecutor.proceed(ReaderInterceptorExecutor.java:132)
        at org.glassfish.jersey.message.internal.MessageBodyFactory.readFrom(MessageBodyFactory.java:1072)
        at org.glassfish.jersey.message.internal.InboundMessageContext.readEntity(InboundMessageContext.java:882)
Caused: javax.ws.rs.ProcessingException: Error reading entity from input stream.
        at org.glassfish.jersey.message.internal.InboundMessageContext.readEntity(InboundMessageContext.java:897)
        at org.glassfish.jersey.message.internal.InboundMessageContext.readEntity(InboundMessageContext.java:816)
        at org.glassfish.jersey.client.ClientResponse.readEntity(ClientResponse.java:298)
        at org.glassfish.jersey.client.InboundJaxrsResponse$1.call(InboundJaxrsResponse.java:91)
        at org.glassfish.jersey.internal.Errors.process(Errors.java:292)
        at org.glassfish.jersey.internal.Errors.process(Errors.java:274)
        at org.glassfish.jersey.internal.Errors.process(Errors.java:205)
        at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:365)
        at org.glassfish.jersey.client.InboundJaxrsResponse.runInScopeIfPossible(InboundJaxrsResponse.java:240)
        at org.glassfish.jersey.client.InboundJaxrsResponse.readEntity(InboundJaxrsResponse.java:88)
        at org.gitlab4j.api.CommitsApi.addCommitStatus(CommitsApi.java:589)
        at io.jenkins.plugins.gitlabbranchsource.helpers.GitLabPipelineStatusNotifier.sendNotifications(GitLabPipelineStatusNotifier.java:279)
        at io.jenkins.plugins.gitlabbranchsource.helpers.GitLabPipelineStatusNotifier.access$300(GitLabPipelineStatusNotifier.java:51)
        at io.jenkins.plugins.gitlabbranchsource.helpers.GitLabPipelineStatusNotifier$JobCompletedListener.onCompleted(GitLabPipelineStatusNotifier.java:419)
        at hudson.model.listeners.RunListener.fireCompleted(RunListener.java:209)
        at org.jenkinsci.plugins.workflow.job.WorkflowRun.finish(WorkflowRun.java:610)
        at org.jenkinsci.plugins.workflow.job.WorkflowRun.access$800(WorkflowRun.java:137)
        at org.jenkinsci.plugins.workflow.job.WorkflowRun$GraphL.onNewHead(WorkflowRun.java:1037)
        at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.notifyListeners(CpsFlowExecution.java:1473)
        at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$3.run(CpsThreadGroup.java:489)
        at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$1.run(CpsVmExecutorService.java:38)
        at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:136)
        at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
        at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:59)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

Seems Gitlab API has started returning CommitStatus id's exceeding Integer range.

kylemanna commented 2 years ago

Seeing this as well.

Mar 01 23:11:26 build java[68915]: 2022-03-01 23:11:26.711+0000 [id=10346]        INFO        i.j.p.g.h.GitLabPipelineStatusNotifier#getSourceProjectId: Getting source project ID from MR 
Mar 01 23:11:27 build java[68915]: 2022-03-01 23:11:27.058+0000 [id=10346]        INFO        i.j.p.g.h.GitLabPipelineStatusNotifier#getSourceProjectId: Got source project ID from MR: 16795433  
Mar 01 23:11:27 build java[68915]: 2022-03-01 23:11:27.406+0000 [id=10346]        WARNING        h.model.listeners.RunListener#report: RunListener failed  
Mar 01 23:11:27 build java[68915]: com.fasterxml.jackson.core.exc.InputCoercionException: Numeric value (2151366464) out of range of int (-2147483648 - 2147483647)  
Mar 01 23:11:27 build java[68915]:  at [Source: (org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$UnCloseableInputStream); line: 1, column: 17]  
Mar 01 23:11:27 build java[68915]:         at com.fasterxml.jackson.core.base.ParserMinimalBase._reportInputCoercion(ParserMinimalBase.java:601)  
Mar 01 23:11:27 build java[68915]:         at com.fasterxml.jackson.core.base.ParserMinimalBase.reportOverflowInt(ParserMinimalBase.java:570)  
Mar 01 23:11:27 build java[68915]:         at com.fasterxml.jackson.core.base.ParserBase.convertNumberToInt(ParserBase.java:889)  
Mar 01 23:11:27 build java[68915]:         at com.fasterxml.jackson.core.base.ParserBase._parseIntValue(ParserBase.java:802)  
Mar 01 23:11:27 build java[68915]:         at com.fasterxml.jackson.core.base.ParserBase.getIntValue(ParserBase.java:646)  
Mar 01 23:11:27 build java[68915]:         at com.fasterxml.jackson.databind.deser.std.NumberDeserializers$IntegerDeserializer.deserialize(NumberDeserializers.java:472)  
Mar 01 23:11:27 build java[68915]:         at com.fasterxml.jackson.databind.deser.std.NumberDeserializers$IntegerDeserializer.deserialize(NumberDeserializers.java:452)  
Mar 01 23:11:27 build java[68915]:         at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:129)  
Mar 01 23:11:27 build java[68915]:         at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:288)  
Mar 01 23:11:27 build java[68915]: Caused: com.fasterxml.jackson.databind.JsonMappingException: Numeric value (2151366464) out of range of int (-2147483648 - 2147483647)  
Mar 01 23:11:27 build java[68915]:  at [Source: (org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$UnCloseableInputStream); line: 1, column: 17] (through reference chain: org.gitlab4j.api.models.CommitStatus["id]  
Mar 01 23:11:27 build java[68915]:         at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:397)  
Mar 01 23:11:27 build java[68915]:         at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:356)  
Mar 01 23:11:27 build java[68915]:         at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.wrapAndThrow(BeanDeserializerBase.java:1714)  
Mar 01 23:11:27 build java[68915]:         at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:290)  
Mar 01 23:11:27 build java[68915]:         at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:151)  
Mar 01 23:11:27 build java[68915]:         at com.fasterxml.jackson.databind.ObjectReader._bind(ObjectReader.java:1682)  
Mar 01 23:11:27 build java[68915]:         at com.fasterxml.jackson.databind.ObjectReader.readValue(ObjectReader.java:977)  
Mar 01 23:11:27 build java[68915]:         at com.fasterxml.jackson.jaxrs.base.ProviderBase.readFrom(ProviderBase.java:814)  
Mar 01 23:11:27 build java[68915]:         at org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$TerminalReaderInterceptor.invokeReadFrom(ReaderInterceptorExecutor.java:233)  
Mar 01 23:11:27 build java[68915]:         at org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$TerminalReaderInterceptor.aroundReadFrom(ReaderInterceptorExecutor.java:212)  
Mar 01 23:11:27 build java[68915]:         at org.glassfish.jersey.message.internal.ReaderInterceptorExecutor.proceed(ReaderInterceptorExecutor.java:132) 
Mar 01 23:11:27 build java[68915]:         at org.glassfish.jersey.message.internal.MessageBodyFactory.readFrom(MessageBodyFactory.java:1072)  
Mar 01 23:11:27 build java[68915]:         at org.glassfish.jersey.message.internal.InboundMessageContext.readEntity(InboundMessageContext.java:882)  
Mar 01 23:11:27 build java[68915]: Caused: javax.ws.rs.ProcessingException: Error reading entity from input stream.  
Mar 01 23:11:27 build java[68915]:         at org.glassfish.jersey.message.internal.InboundMessageContext.readEntity(InboundMessageContext.java:897)  
Mar 01 23:11:27 build java[68915]:         at org.glassfish.jersey.message.internal.InboundMessageContext.readEntity(InboundMessageContext.java:816)  
Mar 01 23:11:27 build java[68915]:         at org.glassfish.jersey.client.ClientResponse.readEntity(ClientResponse.java:298)  
Mar 01 23:11:27 build java[68915]:         at org.glassfish.jersey.client.InboundJaxrsResponse$1.call(InboundJaxrsResponse.java:91)  
Mar 01 23:11:27 build java[68915]:         at org.glassfish.jersey.internal.Errors.process(Errors.java:292)  
Mar 01 23:11:27 build java[68915]:         at org.glassfish.jersey.internal.Errors.process(Errors.java:274)  
Mar 01 23:11:27 build java[68915]:         at org.glassfish.jersey.internal.Errors.process(Errors.java:205)  
Mar 01 23:11:27 build java[68915]:         at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:365)  
Mar 01 23:11:27 build java[68915]:         at org.glassfish.jersey.client.InboundJaxrsResponse.runInScopeIfPossible(InboundJaxrsResponse.java:240)  
Mar 01 23:11:27 build java[68915]:         at org.glassfish.jersey.client.InboundJaxrsResponse.readEntity(InboundJaxrsResponse.java:88)  
Mar 01 23:11:27 build java[68915]:         at org.gitlab4j.api.CommitsApi.addCommitStatus(CommitsApi.java:589)  
Mar 01 23:11:27 build java[68915]:         at io.jenkins.plugins.gitlabbranchsource.helpers.GitLabPipelineStatusNotifier.sendNotifications(GitLabPipelineStatusNotifier.java:321)  
Mar 01 23:11:27 build java[68915]:         at io.jenkins.plugins.gitlabbranchsource.helpers.GitLabPipelineStatusNotifier.access$400(GitLabPipelineStatusNotifier.java:52)  
Mar 01 23:11:27 build java[68915]:         at io.jenkins.plugins.gitlabbranchsource.helpers.GitLabPipelineStatusNotifier$JobCompletedListener.onCompleted(GitLabPipelineStatusNotifier.java:483)  
Mar 01 23:11:27 build java[68915]:         at hudson.model.listeners.RunListener.fireCompleted(RunListener.java:208)  
Mar 01 23:11:27 build java[68915]:         at org.jenkinsci.plugins.workflow.job.WorkflowRun.finish(WorkflowRun.java:625)  
Mar 01 23:11:27 build java[68915]:         at org.jenkinsci.plugins.workflow.job.WorkflowRun.access$800(WorkflowRun.java:138)  
Mar 01 23:11:27 build java[68915]:         at org.jenkinsci.plugins.workflow.job.WorkflowRun$GraphL.onNewHead(WorkflowRun.java:1045)  
Mar 01 23:11:27 build java[68915]:         at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.notifyListeners(CpsFlowExecution.java:1473)  
Mar 01 23:11:27 build java[68915]:         at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$3.run(CpsThreadGroup.java:491)  
Mar 01 23:11:27 build java[68915]:         at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$1.run(CpsVmExecutorService.java:38)  
Mar 01 23:11:27 build java[68915]:         at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:139)  
Mar 01 23:11:27 build java[68915]:         at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)  
Mar 01 23:11:27 build java[68915]:         at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:68)  
Mar 01 23:11:27 build java[68915]:         at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)  
Mar 01 23:11:27 build java[68915]:         at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)  
Mar 01 23:11:27 build java[68915]:         at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)  
Mar 01 23:11:27 build java[68915]:         at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)  
Mar 01 23:11:27 build java[68915]:         at java.base/java.lang.Thread.run(Thread.java:829)  
pnyheim commented 2 years ago

Looks like the same one. ref message: Mar 01 23:11:27 build java[68915]: Caused: com.fasterxml.jackson.databind.JsonMappingException: Numeric value (2151366464) out of range of int (-2147483648 - 2147483647) Mar 01 23:11:27 build java[68915]: at [Source: (org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$UnCloseableInputStream); line: 1, column: 17] (through reference chain: org.gitlab4j.api.models.CommitStatus["id]

Don't know what it will take to get this merged and released, so in the meantime as this is blocking builds for us, I patched this in gitlab4j-api, built it locally, bumped dependency in Jenkins plugin gitlab-api, built also that locally and installed it in Jenkins manually.

pnyheim commented 2 years ago

I also registered an issue with the gitlab-api Jenkins plugin - to bump this dependency when it gets fixed. https://issues.jenkins.io/browse/JENKINS-67941