anko-intel edited a comment 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 logging version and use it from dmlc (but I am not sure) @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