[ https://issues.apache.org/jira/browse/HDDS-1636?focusedWorklogId=254377&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-254377 ]
ASF GitHub Bot logged work on HDDS-1636: ---------------------------------------- Author: ASF GitHub Bot Created on: 05/Jun/19 13:46 Start Date: 05/Jun/19 13:46 Worklog Time Spent: 10m Work Description: hadoop-yetus commented on issue #895: HDDS-1636. Tracing id is not propagated via async datanode grpc call URL: https://github.com/apache/hadoop/pull/895#issuecomment-499089636 :broken_heart: **-1 overall** | Vote | Subsystem | Runtime | Comment | |:----:|----------:|--------:|:--------| | 0 | reexec | 81 | Docker mode activated. | ||| _ Prechecks _ | | +1 | dupname | 1 | No case conflicting files found. | | +1 | @author | 0 | The patch does not contain any @author tags. | | +1 | test4tests | 0 | The patch appears to include 6 new or modified test files. | ||| _ trunk Compile Tests _ | | 0 | mvndep | 77 | Maven dependency ordering for branch | | +1 | mvninstall | 756 | trunk passed | | +1 | compile | 373 | trunk passed | | +1 | checkstyle | 89 | trunk passed | | +1 | mvnsite | 0 | trunk passed | | +1 | shadedclient | 1001 | branch has no errors when building and testing our client artifacts. | | +1 | javadoc | 207 | trunk passed | | 0 | spotbugs | 431 | Used deprecated FindBugs config; considering switching to SpotBugs. | | +1 | findbugs | 685 | trunk passed | ||| _ Patch Compile Tests _ | | 0 | mvndep | 33 | Maven dependency ordering for patch | | +1 | mvninstall | 579 | the patch passed | | +1 | compile | 387 | the patch passed | | +1 | javac | 387 | the patch passed | | +1 | checkstyle | 96 | the patch passed | | +1 | mvnsite | 0 | the patch passed | | +1 | whitespace | 0 | The patch has no whitespace issues. | | +1 | shadedclient | 748 | patch has no errors when building and testing our client artifacts. | | +1 | javadoc | 201 | the patch passed | | -1 | findbugs | 282 | hadoop-hdds generated 2 new + 0 unchanged - 0 fixed = 2 total (was 0) | ||| _ Other Tests _ | | -1 | unit | 137 | hadoop-hdds in the patch failed. | | -1 | unit | 1470 | hadoop-ozone in the patch failed. | | +1 | asflicense | 54 | The patch does not generate ASF License warnings. | | | | 7865 | | | Reason | Tests | |-------:|:------| | FindBugs | module:hadoop-hdds | | | Dead store to traceID in org.apache.hadoop.hdds.scm.client.ContainerOperationClient.closeContainer(long, Pipeline) At ContainerOperationClient.java:org.apache.hadoop.hdds.scm.client.ContainerOperationClient.closeContainer(long, Pipeline) At ContainerOperationClient.java:[line 393] | | | Dead store to traceID in org.apache.hadoop.hdds.scm.client.ContainerOperationClient.readContainer(long, Pipeline) At ContainerOperationClient.java:org.apache.hadoop.hdds.scm.client.ContainerOperationClient.readContainer(long, Pipeline) At ContainerOperationClient.java:[line 308] | | Failed junit tests | hadoop.ozone.lock.TestLockManager | | | hadoop.ozone.container.metrics.TestContainerMetrics | | | hadoop.ozone.TestMiniChaosOzoneCluster | | | hadoop.ozone.TestContainerOperations | | | hadoop.ozone.container.ozoneimpl.TestSecureOzoneContainer | | | hadoop.ozone.web.client.TestKeysRatis | | Subsystem | Report/Notes | |----------:|:-------------| | Docker | Client=17.05.0-ce Server=17.05.0-ce base: https://builds.apache.org/job/hadoop-multibranch/job/PR-895/3/artifact/out/Dockerfile | | GITHUB PR | https://github.com/apache/hadoop/pull/895 | | Optional Tests | dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient findbugs checkstyle | | uname | Linux f406ee14940f 4.4.0-138-generic #164-Ubuntu SMP Tue Oct 2 17:16:02 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux | | Build tool | maven | | Personality | personality/hadoop.sh | | git revision | trunk / 433e97c | | Default Java | 1.8.0_212 | | findbugs | https://builds.apache.org/job/hadoop-multibranch/job/PR-895/3/artifact/out/new-findbugs-hadoop-hdds.html | | unit | https://builds.apache.org/job/hadoop-multibranch/job/PR-895/3/artifact/out/patch-unit-hadoop-hdds.txt | | unit | https://builds.apache.org/job/hadoop-multibranch/job/PR-895/3/artifact/out/patch-unit-hadoop-ozone.txt | | Test Results | https://builds.apache.org/job/hadoop-multibranch/job/PR-895/3/testReport/ | | Max. process+thread count | 1483 (vs. ulimit of 5500) | | modules | C: hadoop-hdds/client hadoop-hdds/common hadoop-ozone/client hadoop-ozone/integration-test hadoop-ozone/objectstore-service hadoop-ozone/ozone-manager U: . | | Console output | https://builds.apache.org/job/hadoop-multibranch/job/PR-895/3/console | | versions | git=2.7.4 maven=3.3.9 findbugs=3.1.0-RC1 | | Powered by | Apache Yetus 0.10.0 http://yetus.apache.org | This message was automatically generated. ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking ------------------- Worklog Id: (was: 254377) Time Spent: 1h 10m (was: 1h) > Tracing id is not propagated via async datanode grpc call > --------------------------------------------------------- > > Key: HDDS-1636 > URL: https://issues.apache.org/jira/browse/HDDS-1636 > Project: Hadoop Distributed Data Store > Issue Type: Bug > Reporter: Elek, Marton > Assignee: Elek, Marton > Priority: Major > Labels: pull-request-available > Time Spent: 1h 10m > Remaining Estimate: 0h > > Recently a new exception become visible in the datanode logs, using standard > freon (STANDLAONE) > {code} > datanode_2 | 2019-06-03 12:18:21 WARN > PropagationRegistry$ExceptionCatchingExtractorDecorator:60 - Error when > extracting SpanContext from carrier. Handling gracefully. > datanode_2 | > io.jaegertracing.internal.exceptions.MalformedTracerStateStringException: > String does not match tracer state format: > 7576cabf-37a4-4232-9729-939a3fdb68c4WriteChunk150a8a848a951784256ca0801f7d9cf8b_stream_ed583cee-9552-4f1a-8c77-63f7d07b755f_chunk_1 > datanode_2 | at > org.apache.hadoop.hdds.tracing.StringCodec.extract(StringCodec.java:49) > datanode_2 | at > org.apache.hadoop.hdds.tracing.StringCodec.extract(StringCodec.java:34) > datanode_2 | at > io.jaegertracing.internal.PropagationRegistry$ExceptionCatchingExtractorDecorator.extract(PropagationRegistry.java:57) > datanode_2 | at > io.jaegertracing.internal.JaegerTracer.extract(JaegerTracer.java:208) > datanode_2 | at > io.jaegertracing.internal.JaegerTracer.extract(JaegerTracer.java:61) > datanode_2 | at > io.opentracing.util.GlobalTracer.extract(GlobalTracer.java:143) > datanode_2 | at > org.apache.hadoop.hdds.tracing.TracingUtil.importAndCreateScope(TracingUtil.java:102) > datanode_2 | at > org.apache.hadoop.ozone.container.common.impl.HddsDispatcher.dispatch(HddsDispatcher.java:148) > datanode_2 | at > org.apache.hadoop.ozone.container.common.transport.server.GrpcXceiverService$1.onNext(GrpcXceiverService.java:73) > datanode_2 | at > org.apache.hadoop.ozone.container.common.transport.server.GrpcXceiverService$1.onNext(GrpcXceiverService.java:61) > datanode_2 | at > org.apache.ratis.thirdparty.io.grpc.stub.ServerCalls$StreamingServerCallHandler$StreamingServerCallListener.onMessage(ServerCalls.java:248) > datanode_2 | at > org.apache.ratis.thirdparty.io.grpc.ForwardingServerCallListener.onMessage(ForwardingServerCallListener.java:33) > datanode_2 | at > org.apache.ratis.thirdparty.io.grpc.Contexts$ContextualizedServerCallListener.onMessage(Contexts.java:76) > datanode_2 | at > org.apache.ratis.thirdparty.io.grpc.ForwardingServerCallListener.onMessage(ForwardingServerCallListener.java:33) > datanode_2 | at > org.apache.hadoop.hdds.tracing.GrpcServerInterceptor$1.onMessage(GrpcServerInterceptor.java:46) > datanode_2 | at > org.apache.ratis.thirdparty.io.grpc.internal.ServerCallImpl$ServerStreamListenerImpl.messagesAvailable(ServerCallImpl.java:263) > datanode_2 | at > org.apache.ratis.thirdparty.io.grpc.internal.ServerImpl$JumpToApplicationThreadServerStreamListener$1MessagesAvailable.runInContext(ServerImpl.java:686) > datanode_2 | at > org.apache.ratis.thirdparty.io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37) > datanode_2 | at > org.apache.ratis.thirdparty.io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:123) > datanode_2 | at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) > datanode_2 | at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) > {code} > It turned out that the tracingId propagation between XCeiverClient and Server > doesn't work very well (in case of Standalone and async commands) > 1. there are many places (on the client side) where the traceId filled with > UUID.randomUUID().toString(); > 2. This random id is propagated between the Output/InputStream and different > part of the clients > 3. It is unnecessary, because in the XceiverClientGrpc and XceiverClientGrpc > the traceId field is overridden with the real opentracing id anyway > (sendCommand/sendCommandAsync) > 4. Except in the XceiverClientGrpc.sendCommandAsync where this part is > accidentally missing. > Things to fix: > 1. fix XceiverClientGrpc.sendCommandAsync (replace any existing traceId with > the good one) > 2. remove the usage of the UUID based traceId (it's not used) > 3. Improve the error logging in case of an invalid traceId on the server > side. -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org