[
https://issues.apache.org/jira/browse/HDFS-14701?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16903325#comment-16903325
]
Hudson commented on HDFS-14701:
-------------------------------
FAILURE: Integrated in Jenkins build Hadoop-trunk-Commit #17066 (See
[https://builds.apache.org/job/Hadoop-trunk-Commit/17066/])
HDFS-14701. Change Log Level to warn in SlotReleaser. Contributed by (weichiu:
rev 28a848412c8239dfc6bd3e42dbbfe711e19bc8eb)
* (edit)
hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/shortcircuit/ShortCircuitCache.java
> 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
> Fix For: 3.3.0
>
> Attachments: HDFS-14701.001.patch, HDFS-14701.002.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]