anko-intel commented on issue #20827:
URL: 
https://github.com/apache/incubator-mxnet/issues/20827#issuecomment-1021151620


   I have checked  the first example in the issue 
(test_autograd.test_retain_grad). 
   It fails when the test is waiting for exception which should by throw by 
LogMessageFatal, but segfault occurs in destructor. It happens on environment 
where src/imperative/imperative.cc uses LogMessageFatal from the file 
3rdparty/**mshadow/mshadow**/logging.h. 
   On other than CI environment and when DNNL is not enabled, LogMessageFatal 
is taken from 3rdparty/**dmlc-core/i**nclude/dmlc/logging.h.
   Unfortunately both files uses the same dmlc namespace. 
   I have checked order of includes during compilation of imperative.cc and in 
both environment first dmlc version is included and later from mshadow. So I 
suppose that linking order take part in reproduction of the issue.
   I have prepared short fix for it where I rename LogMessageFatal  in mshadow 
(https://github.com/apache/incubator-mxnet/pull/20838) , I think it is enough 
as temporary solution. 
   As both logging.h files define macros with the same names (which use 
different implementation underneath) I think we should finally remove mshadow 
loggin version and use it from dmlc..
   @szha  - any comments, any other ideas how to fix it?
   


-- 
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.

To unsubscribe, e-mail: issues-unsubscr...@mxnet.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@mxnet.apache.org
For additional commands, e-mail: issues-h...@mxnet.apache.org

Reply via email to