Skip to content

http-health-check-endpoint not working. Rejects valid paths as 'invalid'. #765

@kdvolder

Description

@kdvolder

This problem can be reproduced with the test program from here:

https://github.com/kdvolder/cf-java-client-sample-v2/blob/http-endpoint-bug/src/main/java/com/github/kdvolder/cfv2sample/CFV2SampleMain.java

When the program is run it tries to push a app with the following manifest:

applications:
- name: test-static-aaasd
  buildpack: staticfile_buildpack
  health-check-type: http
  health-check-http-endpoint: /testbad.txt
  path: testapp.zip

What is supposed to happen is the app gets pushed and but fails to start because the healtcheck doesn't pass.

What happens instead is the we get an error from the client indicating that it doesn't like the health-check-http-endpoint value of /testbad.txt.

You can also change the manifest to use /test.txt in which case it should push succesfully. You will instead get the same error that the client doesn't like the uri.

Here's the full log output from running the test code:

Starting...
Using PASSWORD token for auth
[main] DEBUG cloudfoundry-client.operations - START  Push Manifest
[main] DEBUG cloudfoundry-client.request - GET    https://api.run.pivotal.io:443/v2/organizations?q=name:FrameworksAndRuntimes&page=1
[cloudfoundry-client-nio-5] DEBUG cloudfoundry-client.token - Negotiating using token provider
[cloudfoundry-client-nio-5] DEBUG cloudfoundry-client.request - GET    https://api.run.pivotal.io:443/v2/info
[cloudfoundry-client-nio-7] DEBUG cloudfoundry-client.response - 200    https://api.run.pivotal.io:443/v2/info (360 ms)
[cloudfoundry-client-nio-7] DEBUG cloudfoundry-client.request - POST   https://login.run.pivotal.io:443/oauth/token
[cloudfoundry-client-nio-1] DEBUG cloudfoundry-client.response - 200    https://login.run.pivotal.io:443/oauth/token (548 ms)
[cloudfoundry-client-nio-1] DEBUG cloudfoundry-client.token - Refresh Token: eyJhbGciOiJSUzI1NiIsImtpZCI6InNoYTItMjAxNy0wMS0yMC1rZXkiLCJ0eXAiOiJKV1QifQ.eyJqdGkiOiIzM2NhYzAwODBiZmY0NGQ5ODU5NDg1MjZjYWI1N2UwYS1yIiwic3ViIjoiNzY0NzQ4YzgtY2U3ZS00OTA1LWI1NzMtYjAyNDU3OGM4Y2U5Iiwic2NvcGUiOlsib3BlbmlkIiwidWFhLnVzZXIiLCJjbG91ZF9jb250cm9sbGVyLnJlYWQiLCJwYXNzd29yZC53cml0ZSIsImNsb3VkX2NvbnRyb2xsZXIud3JpdGUiXSwiaWF0IjoxNDk2OTQ2MTE5LCJleHAiOjE0OTc1NTA5MTksImNpZCI6ImNmIiwiY2xpZW50X2lkIjoiY2YiLCJpc3MiOiJodHRwczovL3VhYS5ydW4ucGl2b3RhbC5pby9vYXV0aC90b2tlbiIsInppZCI6InVhYSIsImdyYW50X3R5cGUiOiJwYXNzd29yZCIsInVzZXJfbmFtZSI6ImtkZXZvbGRlckBnb3Bpdm90YWwuY29tIiwib3JpZ2luIjoidWFhIiwidXNlcl9pZCI6Ijc2NDc0OGM4LWNlN2UtNDkwNS1iNTczLWIwMjQ1NzhjOGNlOSIsInJldl9zaWciOiI0ZDYwZDI2MCIsImF1ZCI6WyJjbG91ZF9jb250cm9sbGVyIiwicGFzc3dvcmQiLCJjZiIsInVhYSIsIm9wZW5pZCJdfQ.YB6xwhlHdDRhiOla0FBx83aJ_L7Zm5a3rdizopqENFNqmzb4LOqBL7aJpXPLeIWCOUWqFHcDsRdElDPnr8hWT1otBWIL2_LDWVjVxvi0NjOkplJxfbynMeW5VD9hK5jFt_JkWY8Ed3PTrU59RU5BbOTGENYfF6iceM97INKXwDTtc8ql0lyfe49WVQUBER9072eBwZ_BeWhuri-QRh3G7P0Oe2HM1QhX7BAb-mjWc7tyZ95rLQ9vUgeqimOB3C7ywvg8JjbLDK01VCmZ8OEGCyMP9hqmkyhC6Pq4RjVzEuXdB_nYwuRox_M-Z69DkNTaUT-IP9qGCOeXSPlILc6N0g
[cloudfoundry-client-nio-1] DEBUG cloudfoundry-client.token - Refresh Token Issued At:  2017-06-08T18:21:59 UTC
[cloudfoundry-client-nio-1] DEBUG cloudfoundry-client.token - Refresh Token Expires At: 2017-06-15T18:21:59 UTC
[cloudfoundry-client-nio-1] DEBUG cloudfoundry-client.token - Access Token: eyJhbGciOiJSUzI1NiIsImtpZCI6InNoYTItMjAxNy0wMS0yMC1rZXkiLCJ0eXAiOiJKV1QifQ.eyJqdGkiOiI5OWY5MDNjYWRmYTM0Mjg5YjMyN2FkNmIxOGQ5NDQ5MiIsInN1YiI6Ijc2NDc0OGM4LWNlN2UtNDkwNS1iNTczLWIwMjQ1NzhjOGNlOSIsInNjb3BlIjpbIm9wZW5pZCIsInVhYS51c2VyIiwiY2xvdWRfY29udHJvbGxlci5yZWFkIiwicGFzc3dvcmQud3JpdGUiLCJjbG91ZF9jb250cm9sbGVyLndyaXRlIl0sImNsaWVudF9pZCI6ImNmIiwiY2lkIjoiY2YiLCJhenAiOiJjZiIsImdyYW50X3R5cGUiOiJwYXNzd29yZCIsInVzZXJfaWQiOiI3NjQ3NDhjOC1jZTdlLTQ5MDUtYjU3My1iMDI0NTc4YzhjZTkiLCJvcmlnaW4iOiJ1YWEiLCJ1c2VyX25hbWUiOiJrZGV2b2xkZXJAZ29waXZvdGFsLmNvbSIsImVtYWlsIjoia2Rldm9sZGVyQGdvcGl2b3RhbC5jb20iLCJhdXRoX3RpbWUiOjE0OTY5NDYxMTksInJldl9zaWciOiI0ZDYwZDI2MCIsImlhdCI6MTQ5Njk0NjExOSwiZXhwIjoxNDk2OTQ2NzE5LCJpc3MiOiJodHRwczovL3VhYS5ydW4ucGl2b3RhbC5pby9vYXV0aC90b2tlbiIsInppZCI6InVhYSIsImF1ZCI6WyJjbG91ZF9jb250cm9sbGVyIiwicGFzc3dvcmQiLCJjZiIsInVhYSIsIm9wZW5pZCJdfQ.rkaZZmUqYJ-pi8NfRcRUGGZBvspf9BsAmO_rWGALgPJW9-e2CU2rY0Z1qWuppQShrkrz2_-dCNdOSRWleBFUQDibH1fLO56EdT2ETts8cQ-j1fmWW2pKoA5A32WMg0P5YHBQqEqatRDOuSKxbs9MPleu8xVVfWXWRc02rm0Ix9JkyLiqtau_mUt-pjh9a6nrBw3w2czY0hsi11TprWtJ25zPNd2D0BvDjtYQwaY0ZFvmhIR6lY1amOxdLxNxG9vzWfY0xIK9mvWHjUtgfj54FtCReYO-t5y9DIF6QwSRcKqeZfwePWCCvh3DHvz-Vcvnb4PlKHBoQxRleIUBLgDW0g
[cloudfoundry-client-nio-1] DEBUG cloudfoundry-client.token - Access Token Issued At:  2017-06-08T18:21:59 UTC
[cloudfoundry-client-nio-1] DEBUG cloudfoundry-client.token - Access Token Expires At: 2017-06-08T18:31:59 UTC
[cloudfoundry-client-nio-5] DEBUG cloudfoundry-client.response - 200    https://api.run.pivotal.io:443/v2/organizations?q=name:FrameworksAndRuntimes&page=1 (1.5 s)
[cloudfoundry-client-nio-5] DEBUG cloudfoundry-client.request - GET    https://api.run.pivotal.io:443/v2/spaces?q=name:kdevolder&q=organization_guid:47027c3d-5d72-4429-b3ab-0e3936e916f2&page=1
[cloudfoundry-client-nio-3] DEBUG cloudfoundry-client.response - 200    https://api.run.pivotal.io:443/v2/spaces?q=name:kdevolder&q=organization_guid:47027c3d-5d72-4429-b3ab-0e3936e916f2&page=1 (667 ms)
[cloudfoundry-client-nio-3] DEBUG cloudfoundry-client.request - GET    https://api.run.pivotal.io:443/v2/spaces/20bdfe09-3153-4bee-8d25-cfd69323183e
[cloudfoundry-client-nio-5] DEBUG cloudfoundry-client.response - 200    https://api.run.pivotal.io:443/v2/spaces/20bdfe09-3153-4bee-8d25-cfd69323183e (315 ms)
[cloudfoundry-client-nio-5] DEBUG cloudfoundry-client.request - GET    https://api.run.pivotal.io:443/v2/organizations/47027c3d-5d72-4429-b3ab-0e3936e916f2/private_domains?page=1
[cloudfoundry-client-nio-5] DEBUG cloudfoundry-client.request - GET    https://api.run.pivotal.io:443/v2/shared_domains?page=1
[cloudfoundry-client-nio-7] DEBUG cloudfoundry-client.response - 200    https://api.run.pivotal.io:443/v2/organizations/47027c3d-5d72-4429-b3ab-0e3936e916f2/private_domains?page=1 (292 ms)
[cloudfoundry-client-nio-1] DEBUG cloudfoundry-client.response - 200    https://api.run.pivotal.io:443/v2/shared_domains?page=1 (378 ms)
[cloudfoundry-client-nio-1] DEBUG cloudfoundry-client.request - GET    https://api.run.pivotal.io:443/v2/spaces/20bdfe09-3153-4bee-8d25-cfd69323183e/apps?q=name:test-static-aaasd&page=1
[elastic-2] DEBUG cloudfoundry-client.request - PUT    https://api.run.pivotal.io:443/v2/resource_match
[cloudfoundry-client-nio-3] DEBUG cloudfoundry-client.response - 200    https://api.run.pivotal.io:443/v2/spaces/20bdfe09-3153-4bee-8d25-cfd69323183e/apps?q=name:test-static-aaasd&page=1 (298 ms)
[cloudfoundry-client-nio-3] DEBUG cloudfoundry-client.request - POST   https://api.run.pivotal.io:443/v2/apps
[cloudfoundry-client-nio-5] DEBUG cloudfoundry-client.response - 200    https://api.run.pivotal.io:443/v2/resource_match (319 ms)
[cloudfoundry-client-nio-5] DEBUG cloudfoundry-client.resource-matching - 0 resources matched totaling 0 B
[cloudfoundry-client-nio-7] DEBUG cloudfoundry-client.response - 400    https://api.run.pivotal.io:443/v2/apps (305 ms)
Exception in thread "main" org.cloudfoundry.client.v2.ClientV2Exception: CF-AppInvalid(100001): The app is invalid: health_check_http_endpoint HTTP health check endpoint is not a valid URI path: 
	at org.cloudfoundry.reactor.util.ErrorPayloadMapper.lambda$null$0(ErrorPayloadMapper.java:47)
	at org.cloudfoundry.reactor.util.ErrorPayloadMapper.lambda$null$10(ErrorPayloadMapper.java:108)
	at reactor.core.publisher.MonoThenMap$ThenMapMain.onNext(MonoThenMap.java:120)
	at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:67)
	at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:108)
	at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:115)
	at reactor.core.publisher.FluxUsing$UsingFuseableSubscriber.onNext(FluxUsing.java:351)
	at reactor.core.publisher.FluxFilterFuseable$FilterFuseableSubscriber.onNext(FluxFilterFuseable.java:103)
	at reactor.core.publisher.FluxPeekFuseable$PeekFuseableConditionalSubscriber.onNext(FluxPeekFuseable.java:428)
	at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:962)
	at reactor.core.publisher.MonoReduceSeed$ReduceSeedSubscriber.onComplete(MonoReduceSeed.java:150)
	at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:130)
	at reactor.ipc.netty.channel.FluxReceive.terminateReceiver(FluxReceive.java:375)
	at reactor.ipc.netty.channel.FluxReceive.drainReceiver(FluxReceive.java:198)
	at reactor.ipc.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:338)
	at reactor.ipc.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:343)
	at reactor.ipc.netty.channel.ChannelOperations.onHandlerTerminate(ChannelOperations.java:419)
	at reactor.ipc.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:566)
	at reactor.ipc.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:125)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293)
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:267)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
	at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1240)
	at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1041)
	at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:411)
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:248)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926)
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:134)
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:624)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:559)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:476)
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:438)
	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)
	at java.lang.Thread.run(Thread.java:748)
	Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: 
Assembly trace from producer [reactor.core.publisher.MonoPeek] :
	reactor.core.publisher.Mono.checkpoint(Mono.java:1400)
	org.cloudfoundry.reactor.client.v2.applications.ReactorApplicationsV2.create(ReactorApplicationsV2.java:104)
	org.cloudfoundry.operations.applications.DefaultApplications.requestCreateApplication(DefaultApplications.java:1162)
	org.cloudfoundry.operations.applications.DefaultApplications.getApplicationId(DefaultApplications.java:715)
	org.cloudfoundry.operations.applications.DefaultApplications.lambda$pushApplication$96(DefaultApplications.java:1040)
	reactor.core.publisher.FluxFlatMap.trySubscribeScalarMap(FluxFlatMap.java:140)
	reactor.core.publisher.MonoFlatMap.subscribe(MonoFlatMap.java:46)
	reactor.core.publisher.FluxFlatMap.subscribe(FluxFlatMap.java:95)
	reactor.core.publisher.FluxFlatMap.subscribe(FluxFlatMap.java:95)
	reactor.core.publisher.FluxFlatMap.subscribe(FluxFlatMap.java:95)
	reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:384)
	reactor.core.publisher.FluxIterable$IterableSubscription.slowPath(FluxIterable.java:174)
	reactor.core.publisher.FluxIterable$IterableSubscription.request(FluxIterable.java:144)
	reactor.core.publisher.FluxFlatMap$FlatMapMain.onSubscribe(FluxFlatMap.java:345)
	reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:89)
	reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:54)
	reactor.core.publisher.FluxFlatMap.subscribe(FluxFlatMap.java:95)
	reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:183)
	reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:962)
	reactor.core.publisher.MonoThenMap$ThenMapMain$ThenMapInner.onNext(MonoThenMap.java:237)
	reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:962)
	reactor.core.publisher.MonoWhen$WhenCoordinator.signal(MonoWhen.java:249)
	reactor.core.publisher.MonoWhen$WhenInner.onNext(MonoWhen.java:308)
	reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:962)
	reactor.core.publisher.MonoCollectList$MonoBufferAllSubscriber.onComplete(MonoCollectList.java:115)
	reactor.core.publisher.FluxFlatMap$FlatMapMain.checkTerminated(FluxFlatMap.java:739)
	reactor.core.publisher.FluxFlatMap$FlatMapMain.drainLoop(FluxFlatMap.java:511)
	reactor.core.publisher.FluxFlatMap$FlatMapMain.innerComplete(FluxFlatMap.java:840)
	reactor.core.publisher.FluxFlatMap$FlatMapInner.onComplete(FluxFlatMap.java:933)
	reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:130)
	reactor.core.publisher.FluxFlatMap$FlatMapMain.checkTerminated(FluxFlatMap.java:739)
	reactor.core.publisher.FluxFlatMap$FlatMapMain.drainLoop(FluxFlatMap.java:511)
	reactor.core.publisher.FluxFlatMap$FlatMapMain.drain(FluxFlatMap.java:491)
	reactor.core.publisher.FluxFlatMap$FlatMapMain.onComplete(FluxFlatMap.java:484)
	reactor.core.publisher.MonoFlatMap$FlatMapInner.onComplete(MonoFlatMap.java:245)
	reactor.core.publisher.FluxFlattenIterable$FlattenIterableSubscriber.drainAsync(FluxFlattenIterable.java:317)
	reactor.core.publisher.FluxFlattenIterable$FlattenIterableSubscriber.drain(FluxFlattenIterable.java:616)
	reactor.core.publisher.FluxFlattenIterable$FlattenIterableSubscriber.onComplete(FluxFlattenIterable.java:258)
	reactor.core.publisher.FluxBuffer$BufferExactSubscriber.onComplete(FluxBuffer.java:179)
	reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:183)
	reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:79)
	reactor.core.publisher.FluxBuffer.subscribe(FluxBuffer.java:72)
	reactor.core.publisher.FluxFlattenIterable.subscribe(FluxFlattenIterable.java:104)
	reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:183)
	reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:173)
	reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:76)
	reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:108)
	reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:235)
	reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:108)
	reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:108)
	reactor.ipc.netty.channel.FluxReceive.drainReceiver(FluxReceive.java:207)
	reactor.ipc.netty.channel.FluxReceive.onInboundNext(FluxReceive.java:322)
	reactor.ipc.netty.channel.ChannelOperations.onInboundNext(ChannelOperations.java:316)
	reactor.ipc.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:581)
	reactor.ipc.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:125)
	io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
	io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
	io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
	io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293)
	io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:267)
	io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
	io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
	io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
	reactor.ipc.netty.http.HttpOperations.lambda$static$3(HttpOperations.java:261)
	reactor.ipc.netty.ReactorNetty$ExtractorHandler.channelRead(ReactorNetty.java:328)
	io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
	io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
	io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
	io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293)
	io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:267)
	io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
	io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
	io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
	io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1240)
	io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1041)
	io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:411)
	io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:248)
	io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
	io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
	io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
	io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334)
	io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
	io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
	io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926)
	io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:134)
	io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:624)
	io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:559)
	io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:476)
	io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:438)
	io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)
Error has been observed by the following operator(s):
	|_	Mono.checkpoint(ReactorApplicationsV2.java:104)
	|_	Mono.checkpoint(DefaultApplications.java:397)

	Suppressed: reactor.core.publisher.FluxOnAssembly$AssemblySnapshotException
		at reactor.core.publisher.MonoOnAssembly.<init>(MonoOnAssembly.java:54)
		at reactor.core.publisher.Mono.checkpoint(Mono.java:1400)
		at org.cloudfoundry.operations.applications.DefaultApplications.pushManifest(DefaultApplications.java:397)
		at com.github.kdvolder.cfv2sample.CFV2SampleMain.pushAnApp(CFV2SampleMain.java:92)
		at com.github.kdvolder.cfv2sample.CFV2SampleMain.main(CFV2SampleMain.java:78)
	Suppressed: java.lang.Exception: #block terminated with an error
		at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:86)
		at reactor.core.publisher.Mono.block(Mono.java:1301)
		at com.github.kdvolder.cfv2sample.CFV2SampleMain.pushAnApp(CFV2SampleMain.java:92)
		at com.github.kdvolder.cfv2sample.CFV2SampleMain.main(CFV2SampleMain.java:78)
[cloudfoundry-client-nio-7] DEBUG cloudfoundry-client.operations - FINISH Push Manifest (onError/3.7 s)

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions