[
https://issues.apache.org/jira/browse/HDFS-14701?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16900119#comment-16900119
]
Lisheng Sun edited comment on HDFS-14701 at 8/5/19 2:32 PM:
------------------------------------------------------------
hi [~ayushtkn] [~xkrogen] [~brahmareddy].Could you mind help review this
patch? Thank you.
was (Author: leosun08):
hi [~ayushtkn] Could you mind help review this patch? Thank you.
> Change Log Level to warn in SlotReleaser
> ----------------------------------------
>
> Key: HDFS-14701
> URL: https://issues.apache.org/jira/browse/HDFS-14701
> Project: Hadoop HDFS
> Issue Type: Improvement
> Reporter: Lisheng Sun
> Assignee: Lisheng Sun
> Priority: Minor
> Attachments: HDFS-14701.001.patch
>
>
> if the corresponding DataNode has been stopped or restarted and DFSClient
> close shared memory segment,releaseShortCircuitFds API throw expection and
> log a ERROR Message. I think it should not be a ERROR log,and that log a warn
> log is more reasonable.
> {code:java}
> // @Override
> public void run() {
> LOG.trace("{}: about to release {}", ShortCircuitCache.this, slot);
> final DfsClientShm shm = (DfsClientShm)slot.getShm();
> final DomainSocket shmSock = shm.getPeer().getDomainSocket();
> final String path = shmSock.getPath();
> boolean success = false;
> try (DomainSocket sock = DomainSocket.connect(path);
> DataOutputStream out = new DataOutputStream(
> new BufferedOutputStream(sock.getOutputStream()))) {
> new Sender(out).releaseShortCircuitFds(slot.getSlotId());
> DataInputStream in = new DataInputStream(sock.getInputStream());
> ReleaseShortCircuitAccessResponseProto resp =
> ReleaseShortCircuitAccessResponseProto.parseFrom(
> PBHelperClient.vintPrefixed(in));
> if (resp.getStatus() != Status.SUCCESS) {
> String error = resp.hasError() ? resp.getError() : "(unknown)";
> throw new IOException(resp.getStatus().toString() + ": " + error);
> }
> LOG.trace("{}: released {}", this, slot);
> success = true;
> } catch (IOException e) {
> LOG.error(ShortCircuitCache.this + ": failed to release " +
> "short-circuit shared memory slot " + slot + " by sending " +
> "ReleaseShortCircuitAccessRequestProto to " + path +
> ". Closing shared memory segment.", e);
> } finally {
> if (success) {
> shmManager.freeSlot(slot);
> } else {
> shm.getEndpointShmManager().shutdown(shm);
> }
> }
> }
> {code}
> *exception stack:*
> {code:java}
> 2019-08-05,15:28:03,838 ERROR [ShortCircuitCache_SlotReleaser]
> org.apache.hadoop.hdfs.shortcircuit.ShortCircuitCache:
> ShortCircuitCache(0x65849546): failed to release short-circuit shared memory
> slot Slot(slotIdx=62, shm=DfsClientShm(70593ef8b3d84cba3c2f0a1e81377eb1)) by
> sending ReleaseShortCircuitAccessRequestProto to
> /home/work/app/hdfs/c3micloudsrv-hdd/datanode/dn_socket. Closing shared
> memory segment.
> java.io.IOException: ERROR_INVALID: there is no shared memory segment
> registered with shmId 70593ef8b3d84cba3c2f0a1e81377eb1
> {code}
>
--
This message was sent by Atlassian JIRA
(v7.6.14#76016)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]