Skip to content
This repository has been archived by the owner on Nov 17, 2023. It is now read-only.

Floating point exception in mxnet.ndarray.op.SequenceMask #18939

Closed
leeyeetonn opened this issue Aug 16, 2020 · 1 comment
Closed

Floating point exception in mxnet.ndarray.op.SequenceMask #18939

leeyeetonn opened this issue Aug 16, 2020 · 1 comment
Labels
Bug C++ Related to C++ good first issue Operator v1.x Targeting v1.x branch

Comments

@leeyeetonn
Copy link

Description

(A clear and concise description of what the bug is.)
mxnet.ndarray.op.SequenceMask has floating point exception when given data has 0 in its shape. Please see the provided code for example.

Error Message

(Paste the complete error message. Please also include stack trace by setting environment variable DMLC_LOG_STACK_TRACE_DEPTH=10 before running your script.)

Floating point exception (core dumped)

To Reproduce

(If you developed your own code, please provide a short script that reproduces the error. For existing examples, please provide link.)

import mxnet
import numpy as np
data = mxnet.nd.array(np.random.rand(0,1,1))
mxnet.ndarray.op.SequenceMask(data)

Steps to reproduce

(Paste the commands you ran that produced the error.)

  1. run the provided code in python interpreter or as a script

What have you tried to solve it?

Environment

We recommend using our script for collecting the diagnositc information. Run the following command and paste the outputs below:

curl --retry 10 -s https://raw.githubusercontent.com/dmlc/gluon-nlp/master/tools/diagnose.py | python

# paste outputs here

Got 404 when trying to get the script.

Some environment information:

  • OS: ubuntu 18.04
  • Python: 3.7.6
  • pip: 20.0.2
  • numpy: 1.18.5
  • mxnet: 1.6.0
@szha
Copy link
Member

szha commented Aug 21, 2020

So here's the problem:

% DMLC_LOG_STACK_TRACE_DEPTH=150 MXNET_ENGINE_TYPE=NaiveEngine lldb python3.7 -- test_18939.py
(lldb) target create "python3.7"
Current executable set to 'python3.7' (x86_64).
(lldb) settings set -- target.run-args  "test_18939.py"
(lldb) run
Process 72921 launched: '/usr/local/bin/python3.7' (x86_64)
Process 72921 stopped
* thread #2, stop reason = exec
    frame #0: 0x0000000100006000 dyld`_dyld_start
dyld`_dyld_start:
->  0x100006000 <+0>: popq   %rdi
    0x100006001 <+1>: pushq  $0x0
    0x100006003 <+3>: movq   %rsp, %rbp
    0x100006006 <+6>: andq   $-0x10, %rsp
(lldb) cont
Process 72921 resuming
[23:48:10] ../src/engine/engine.cc:55: MXNet start using engine: NaiveEngine
Process 72921 stopped
* thread #2, queue = 'com.apple.main-thread', stop reason = EXC_ARITHMETIC (code=EXC_I386_DIV, subcode=0x0)
    frame #0: 0x0000000117211d6d libmxnet.dylib`mxnet::op::SequenceMaskOp<mshadow::cpu, float, float>::Forward(this=0x00000001280dd950, ctx=0x00007ffeefbfc2b0, in_data=0x00000001280f5ae8, req=0x00007ffeefbfc310, out_data=0x00000001280f5b30, aux_args=0x00000001280f5b18) at sequence_mask-inl.h:100
   97  	    auto d0 = in_data[seq_mask::kData].size(0);
   98  	    auto d1 = in_data[seq_mask::kData].size(1);
   99  	    auto dsize = in_data[seq_mask::kData].Size();
-> 100 	    auto rest_size = dsize / (d0 * d1);
   101
   102 	    Shape<3> s3 = Shape3(d0, d1, rest_size);
   103 	    Tensor<xpu, 3, DType> data =

https://github.com/apache/incubator-mxnet/blob/9bdd4d6347c284770ee5bfe5ae98f1dabc283829/src/operator/sequence_mask-inl.h#L100

The code needs to guard against zero-size array for right operand of /, and we should add a smoke test to guard against such problem in this op, similar to https://github.com/apache/incubator-mxnet/pull/18972/files

r3stl355 pushed a commit to r3stl355/incubator-mxnet that referenced this issue Feb 7, 2021
@szha szha closed this as completed in 3dd678f Feb 7, 2021
r3stl355 pushed a commit to r3stl355/incubator-mxnet that referenced this issue Feb 9, 2021
szha pushed a commit that referenced this issue Apr 30, 2021
* fix #18938

* fix #18939, #18940

* fix #18936 and #18937

Co-authored-by: r3stl355 <[email protected]>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Bug C++ Related to C++ good first issue Operator v1.x Targeting v1.x branch
Projects
None yet
Development

No branches or pull requests

2 participants