General feedback, bugs, user experience using a Maven project

Dennis Fischer March 4, 2021

Hi there,

thank you for providing the EAP access. I have run a few builds with from my local machine and the overall experience was quite positive.

Bugs

  • The UI does not contain any log output of the run steps. The log is clearly visible when running `docker logs` against the executed container. However, the UI reports `Log download failed. Try again.`, and the runner claims to have processed logs?
[2021-03-04 19:59:59,197] Waiting for next step.
[2021-03-04 20:01:32,711] Getting step StepId{accountUuid={706988ad-5afc-4819-93ad-a8feb30b7c7d}, repositoryUuid={2ac62d57-7070-47f7-9b73-c1ed1df92ec0}, pipelineUuid={b7865d23-9657-4c6b-858e-7fcdda6ebded}, stepUuid={d51e3d4c-6eec-4786-8fe8-8b528b13a6b5}}.
[2021-03-04 20:01:32,713] Getting oauth token for step.
[2021-03-04 20:01:32,714] Getting environment variables for step.
[2021-03-04 20:01:33,546] Setting up directories.
[2021-03-04 20:01:33,546] Starting log uploader.
[2021-03-04 20:01:33,547] Updating step progress to PULLING_IMAGES.
[2021-03-04 20:01:34,222] Pulling image docker-public.packages.atlassian.com/sox/atlassian/bitbucket-pipelines-dvcs-tools:prod-stable.
[2021-03-04 20:01:34,768] Pulling image maven:3.6.3-jdk-11-slim.
[2021-03-04 20:01:36,806] Updating step progress to CLONING.
[2021-03-04 20:01:37,483] Generating clone script.
[2021-03-04 20:01:37,485] Removing container clone
[2021-03-04 20:01:37,486] Executing clone script in clone container.
[2021-03-04 20:01:37,488] Creating container clone.
[2021-03-04 20:01:37,644] Starting container.
[2021-03-04 20:01:37,899] Waiting on container to exit.
[2021-03-04 20:01:37,901] Creating exec into container.
[2021-03-04 20:01:37,903] Starting exec into container and waiting for exec to exit.
[2021-03-04 20:01:40,455] Container has state (exitCode: Some(0), OOMKilled Some(false))
[2021-03-04 20:01:40,455] Removing container a88e16782cd818860eb44074a65d849ddca7db2d1d2fe8cf518dbf8470d2d9f0
[2021-03-04 20:01:40,464] Updating step progress to BUILDING.
[2021-03-04 20:01:41,150] Generating build script.
[2021-03-04 20:01:41,155] Removing container build
[2021-03-04 20:01:41,155] Executing build script in build container.
[2021-03-04 20:01:41,158] Creating container build.
[2021-03-04 20:01:41,215] Starting container.
[2021-03-04 20:01:41,472] Waiting on container to exit.
[2021-03-04 20:01:41,473] Creating exec into container.
[2021-03-04 20:01:41,475] Starting exec into container and waiting for exec to exit.
[2021-03-04 20:09:24,446] Container has state (exitCode: Some(0), OOMKilled Some(false))
[2021-03-04 20:09:24,447] Updating step progress to COMPLETING_LOGS.
[2021-03-04 20:09:25,149] Shutting down log uploader.
[2021-03-04 20:09:25,149] Removing container f303c0e91ede39b57e03e97c9331cfd8a0f765e6bd761cccf7a01799920d300e
[2021-03-04 20:09:25,315] Tearing down directories.
[2021-03-04 20:09:25,319] Completing step with result Result{status=PASSED, error=None}.
[2021-03-04 20:09:25,999] Waiting for next step.

I know that services are not supported right now, but as expected, the runner seems to ignore it. My repository is not public, but a similar one can be found at https://bitbucket.org/atlassian/confluence-devrel-plugin/src/main/ which was run with this bitbucket-pipelines.yml file:

image: maven:3.6.3-jdk-11-slim

definitions:
services:
chrome:
image: selenium/standalone-chrome:3.11.0

pipelines:
default:
- step:
size: 2x
name: "[chrome] Confluence 7.11.1"
runs-on:
- "self.hosted"
caches:
- maven
services:
- chrome
artifacts:
- "integration-tests/target/webdriverTests/**/*.png"
script:
- mvn -B package --file pom.xml -Dxvfb.enable=false -Dwebdriver.browser="chrome:url=http://127.0.0.1:4444" -Dconfluence.version=7.11.1
# after-script:
# # Collect checkstyle results, if any, and convert to Bitbucket Code Insights.
# - pipe: atlassian/checkstyle-report:0.2.0

User Experience

The documentation is easy to follow and sufficient to run a runner. The runner is very lightweight (looked like some debian, jdk-slim base container + the java based runner). Pushing to the repository immediately started a build. Everything with respect to runner and UI communication seems to be working great already (except the logs). 

Currently a runner is bound to a single repository. This would mean that I need to register at least one runner for each repository. I would prefer to have the option at least on a per project (workspace?) level instead. Otherwise, this would require 15 runners just for one of our projects, which will idle most of the time.

General Feedback

I was a bit disappointed to see the currently long list of limitations given that the public cloud roadmap lists the expected general availability of runners to be Q1 2021. As you mentioned, more features will be available soon! Looking forward to it.

I can not give you any good prioritization of the missing features, I pretty much need all of them to run "production grade" build jobs. Caches might be the only feature which could be something the is slightly less important to me. However, especially maven builds like the on above are painful without caches. The runner build took 7 minutes 41 seconds, with caches it would run for less then 10 seconds. But yeah, that's primarily mavens (non-parallel download) fault.

I would expect to have more ways of starting a runner in the future. The currently used docker command does not seem to scale. For example, a build pipeline is a great example which can benefit of autoscaling. There are various ways to achieve this. I expect to see some documentation in the future. Example use cases:

  • Run a AWS AutoScaling Group. If the existing nodes are running out of resources, then this could scale up the number of instances. Or we could scale down to zero based on a schedule. A suitable launch configuration might be able to automatically provision a new EC2 instance and register a new runner. 
  • Run runners in a Kubernetes cluster, because we have it already.

 

Looking forward to new features and feedback.

Cheers,
Dennis

1 comment

Comment

Log in or Sign up to comment
lassian
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
March 4, 2021

Hi Dennis,

I have just pushed out a new version of the runner that adds some more logging around log uploads can you please:
1. Stop the current runner and remove its container.

2. Re-pull the runner image to pull the latest version.

3. Start the runner container up again.

4. Rerun the build that wasn't uploading logs.

 

Can you please provide some more information as well for us:

* What version of docker you are running this on

* What distribution of linux you are using

 

Also can you please confirm that the runner command you are running contains the volume mount of /var/lib/docker/containers as that is required for us to grab the containers log files for uploading.

This is also the default path that docker uses, just confirming on your machine you haven't reconfigured this to a different path? if so you will need to update the runner command to use that path if so.

Kind Regards,

Nathan

Dennis Fischer March 5, 2021

Hi @lassian ,

thank you for your feedback.

I have seen the added log messages.

Container log not found: /var/lib/docker/containers/3477c0669e84c2c1f3171fe91436e2b23e633dc2602723b73d6786db4846c76e/3477c0669e84c2c1f3171fe91436e2b23e633dc2602723b73d6786db4846c76e-json.log

As you have mentioned, the volume mount is required. In fact, it was not working correctly. Root cause:  User namespaces were enabled (https://docs.docker.com/engine/security/userns-remap/). Running the runner with --userns=host did not resolve the problem. I finally disabled the user namespaces and now the logging works as expected.

I am attaching the log as a few exceptions were still triggered - but everything (from the UI side) is looking good:

[2021-03-05 06:58:46,455] Adding container log: /var/lib/docker/containers/1f8eb118c3dbcf72f693b2fa3ba41b1b8eb58604ea89ca409f7be60e9dabef81/1f8eb118c3dbcf72f693b2fa3ba41b1b8eb58604ea89ca409f7be60e9dabef81-json.log
[2021-03-05 06:58:46,455] Waiting on container to exit.
[2021-03-05 06:58:46,456] Creating exec into container.
[2021-03-05 06:58:46,458] Starting exec into container and waiting for exec to exit.
[2021-03-05 06:58:46,965] Appending log line to main log.
[2021-03-05 06:58:47,964] Appending log line to main log.
[2021-03-05 06:58:48,966] Appending log line to main log.
[2021-03-05 06:58:49,966] Appending log line to main log.
[2021-03-05 06:58:50,968] Appending log line to main log.
[2021-03-05 06:58:51,966] Appending log line to main log.
[2021-03-05 06:58:52,965] Appending log line to main log.
[2021-03-05 06:58:53,966] Appending log line to main log.

[...]

[2021-03-05 07:03:16,969] An error occurred whilst appending to main log.
java.util.concurrent.TimeoutException: null
at com.netflix.hystrix.AbstractCommand.handleTimeoutViaFallback(AbstractCommand.java:997)
at com.netflix.hystrix.AbstractCommand.access$500(AbstractCommand.java:60)
at com.netflix.hystrix.AbstractCommand$12.call(AbstractCommand.java:609)
at com.netflix.hystrix.AbstractCommand$12.call(AbstractCommand.java:601)
at rx.internal.operators.OperatorOnErrorResumeNextViaFunction$4.onError(OperatorOnErrorResumeNextViaFunction.java:140)
... 15 common frames omitted
Wrapped by: com.netflix.hystrix.exception.HystrixRuntimeException: STARGATE_BITBUCKETCI_REST_SERVICE_POST_LOG timed-out and no fallback available.
at com.netflix.hystrix.AbstractCommand$22.call(AbstractCommand.java:822)
at com.netflix.hystrix.AbstractCommand$22.call(AbstractCommand.java:807)
at rx.internal.operators.OperatorOnErrorResumeNextViaFunction$4.onError(OperatorOnErrorResumeNextViaFunction.java:140)
at rx.internal.operators.OnSubscribeDoOnEach$DoOnEachSubscriber.onError(OnSubscribeDoOnEach.java:87)
at rx.internal.operators.OnSubscribeDoOnEach$DoOnEachSubscriber.onError(OnSubscribeDoOnEach.java:87)
at com.netflix.hystrix.AbstractCommand$DeprecatedOnFallbackHookApplication$1.onError(AbstractCommand.java:1472)
at com.netflix.hystrix.AbstractCommand$FallbackHookApplication$1.onError(AbstractCommand.java:1397)
at rx.internal.operators.OnSubscribeDoOnEach$DoOnEachSubscriber.onError(OnSubscribeDoOnEach.java:87)
at rx.internal.operators.OnSubscribeThrow.call(OnSubscribeThrow.java:44)
at rx.internal.operators.OnSubscribeThrow.call(OnSubscribeThrow.java:28)
at rx.Observable.unsafeSubscribe(Observable.java:10327)
at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:41)
at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:30)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
at rx.Observable.unsafeSubscribe(Observable.java:10327)
at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:41)
at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:30)
at rx.Observable.unsafeSubscribe(Observable.java:10327)
at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:41)
at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:30)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
at rx.Observable.unsafeSubscribe(Observable.java:10327)
at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:41)
at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:30)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
at rx.Observable.unsafeSubscribe(Observable.java:10327)
at rx.internal.operators.OperatorOnErrorResumeNextViaFunction$4.onError(OperatorOnErrorResumeNextViaFunction.java:142)
at rx.internal.operators.OnSubscribeDoOnEach$DoOnEachSubscriber.onError(OnSubscribeDoOnEach.java:87)
at rx.internal.operators.OnSubscribeDoOnEach$DoOnEachSubscriber.onError(OnSubscribeDoOnEach.java:87)
at com.netflix.hystrix.AbstractCommand$HystrixObservableTimeoutOperator$1.run(AbstractCommand.java:1142)
at com.netflix.hystrix.strategy.concurrency.HystrixContextRunnable$1.call(HystrixContextRunnable.java:41)
at com.netflix.hystrix.strategy.concurrency.HystrixContextRunnable$1.call(HystrixContextRunnable.java:37)
at com.netflix.hystrix.strategy.concurrency.HystrixContextRunnable.run(HystrixContextRunnable.java:57)
at com.netflix.hystrix.AbstractCommand$HystrixObservableTimeoutOperator$2.tick(AbstractCommand.java:1159)
at com.netflix.hystrix.util.HystrixTimer$1.run(HystrixTimer.java:99)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
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)
[2021-03-05 07:03:16,970] Appending log line to main log.
[2021-03-05 07:03:46,972] An error occurred whilst appending to main log.
java.util.concurrent.TimeoutException: null
at com.netflix.hystrix.AbstractCommand.handleTimeoutViaFallback(AbstractCommand.java:997)
at com.netflix.hystrix.AbstractCommand.access$500(AbstractCommand.java:60)
at com.netflix.hystrix.AbstractCommand$12.call(AbstractCommand.java:609)
at com.netflix.hystrix.AbstractCommand$12.call(AbstractCommand.java:601)
at rx.internal.operators.OperatorOnErrorResumeNextViaFunction$4.onError(OperatorOnErrorResumeNextViaFunction.java:140)
... 15 common frames omitted
Wrapped by: com.netflix.hystrix.exception.HystrixRuntimeException: STARGATE_BITBUCKETCI_REST_SERVICE_POST_LOG timed-out and no fallback available.
at com.netflix.hystrix.AbstractCommand$22.call(AbstractCommand.java:822)
at com.netflix.hystrix.AbstractCommand$22.call(AbstractCommand.java:807)
at rx.internal.operators.OperatorOnErrorResumeNextViaFunction$4.onError(OperatorOnErrorResumeNextViaFunction.java:140)
at rx.internal.operators.OnSubscribeDoOnEach$DoOnEachSubscriber.onError(OnSubscribeDoOnEach.java:87)
at rx.internal.operators.OnSubscribeDoOnEach$DoOnEachSubscriber.onError(OnSubscribeDoOnEach.java:87)
at com.netflix.hystrix.AbstractCommand$DeprecatedOnFallbackHookApplication$1.onError(AbstractCommand.java:1472)
at com.netflix.hystrix.AbstractCommand$FallbackHookApplication$1.onError(AbstractCommand.java:1397)
at rx.internal.operators.OnSubscribeDoOnEach$DoOnEachSubscriber.onError(OnSubscribeDoOnEach.java:87)
at rx.internal.operators.OnSubscribeThrow.call(OnSubscribeThrow.java:44)
at rx.internal.operators.OnSubscribeThrow.call(OnSubscribeThrow.java:28)
at rx.Observable.unsafeSubscribe(Observable.java:10327)
at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:41)
at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:30)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
at rx.Observable.unsafeSubscribe(Observable.java:10327)
at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:41)
at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:30)
at rx.Observable.unsafeSubscribe(Observable.java:10327)
at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:41)
at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:30)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
at rx.Observable.unsafeSubscribe(Observable.java:10327)
at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:41)
at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:30)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
at rx.Observable.unsafeSubscribe(Observable.java:10327)
at rx.internal.operators.OperatorOnErrorResumeNextViaFunction$4.onError(OperatorOnErrorResumeNextViaFunction.java:142)
at rx.internal.operators.OnSubscribeDoOnEach$DoOnEachSubscriber.onError(OnSubscribeDoOnEach.java:87)
at rx.internal.operators.OnSubscribeDoOnEach$DoOnEachSubscriber.onError(OnSubscribeDoOnEach.java:87)
at com.netflix.hystrix.AbstractCommand$HystrixObservableTimeoutOperator$1.run(AbstractCommand.java:1142)
at com.netflix.hystrix.strategy.concurrency.HystrixContextRunnable$1.call(HystrixContextRunnable.java:41)
at com.netflix.hystrix.strategy.concurrency.HystrixContextRunnable$1.call(HystrixContextRunnable.java:37)
at com.netflix.hystrix.strategy.concurrency.HystrixContextRunnable.run(HystrixContextRunnable.java:57)
at com.netflix.hystrix.AbstractCommand$HystrixObservableTimeoutOperator$2.tick(AbstractCommand.java:1159)
at com.netflix.hystrix.util.HystrixTimer$1.run(HystrixTimer.java:99)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
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)

[...]

[2021-03-05 07:36:34,964] Appending log line to main log.
[2021-03-05 07:36:35,229] Container has state (exitCode: Some(0), OOMKilled Some(false))
[2021-03-05 07:36:35,229] Removing container 1f8eb118c3dbcf72f693b2fa3ba41b1b8eb58604ea89ca409f7be60e9dabef81
[2021-03-05 07:36:35,407] Updating step progress to COMPLETING_LOGS.
[2021-03-05 07:36:35,407] Tearing down directories.
[2021-03-05 07:36:36,099] Shutting down log uploader.
[2021-03-05 07:36:36,104] Completing step with result Result{status=PASSED, error=None}.
[2021-03-05 07:36:36,785] Waiting for next step.
[2021-03-05 10:18:18,443] Translating HTTP 403 FORBIDDEN response into a com.atlassian.pipelines.stargate.client.core.exceptions.StargateForbiddenException
[2021-03-05 10:18:18,463] An error occurred polling the runner with id {4b2e9103-6cd0-5fc7-8e62-6d25ed8d0284}
com.atlassian.pipelines.stargate.client.core.exceptions.StargateForbiddenException: Response Summary: HttpResponseSummary{httpStatusCode=403, httpStatusMessage=Forbidden, bodyAsString={"error":{"message":"Forbidden","detail":"Could not find runner associated with oauth client.","data":{"key":"rest-service.rest-service.forbidden","arguments":{}}}}}
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
Error has been observed at the following site(s):
|_ checkpoint ⇢ 403 from GET https://api.atlassian.com/ex/bitbucket-pipelines/rest/internal/accounts/%7B706988ad-5afc-4819-93ad-a8feb30b7c7d%7D/repositories/%7B2ac62d57-7070-47f7-9b73-c1ed1df92ec0%7D/runners/%7B4b2e9103-6cd0-5fc7-8e62-6d25ed8d0284%7D [DefaultWebClient]
Stack trace:
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.atlassian.bitbucketci.client.reactive.ResponseExceptionFactory$ConstructorInvoker.invokeConstructor(ResponseExceptionFactory.java:119)
at io.vavr.CheckedFunction1.lambda$unchecked$43b513dd$1(CheckedFunction1.java:220)
at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:100)
at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:114)
at reactor.core.publisher.FluxDefaultIfEmpty$DefaultIfEmptySubscriber.onNext(FluxDefaultIfEmpty.java:92)
at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:121)
at reactor.core.publisher.FluxContextStart$ContextStartSubscriber.onNext(FluxContextStart.java:96)
at reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber.onNext(FluxMapFuseable.java:287)
at reactor.core.publisher.FluxFilterFuseable$FilterFuseableConditionalSubscriber.onNext(FluxFilterFuseable.java:330)
at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1782)
at reactor.core.publisher.MonoCollect$CollectSubscriber.onComplete(MonoCollect.java:152)
at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:136)
at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:252)
at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:136)
at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:374)
at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:373)
at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:429)
at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:655)
at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:96)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436)
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:296)
at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1526)
at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1275)
at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1322)
at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:501)
at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:440)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:276)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:795)
at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:475)
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.lang.Thread.run(Thread.java:748)

 

For completeness:

  • Docker version 19.03.13, build 4484c46
  • Kernel: 5.10.15-051015-generic #202102100936 SMP Wed Feb 10 09:44:03 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
  • OS: Pop!_OS 20.10 (which is Ubuntu 20.10 based)

Cheers,
Dennis

lassian
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
March 7, 2021

Hi Dennis,

Yes currently we dont support running steps against a docker daemon that has userns-remap enabled due to the limitations it introduces, one of which is we cant support docker in docker nor pipes with a daemon that has userns-remap enabled.

Kind Regards,

Nathan Burrell

Dennis Fischer March 8, 2021

Hi @lassian 

sounds fair :D. Looking forward to upcoming features.

Cheers,
Dennis

TAGS
AUG Leaders

Atlassian Community Events