Oneflow-Inc / oneflow

OneFlow is a deep learning framework designed to be user-friendly, scalable and efficient.
http://www.oneflow.org
Apache License 2.0
5.87k stars 667 forks source link

Aborted (core dumped) in `oneflow.rand/zeros/ones` #10518

Open x0w3n opened 4 months ago

x0w3n commented 4 months ago

Summary

The code crashes when negative values are given as arguments to oneflow's rand/zeros/ones functions for generating tensors.

Code to reproduce bug

rand:

import oneflow
oneflow.rand(-1)  # crash

output:

terminate called after throwing an instance of 'oneflow::Exception'
  what():  Check failed: (-1 >= 0): elem_cnt must be non-negative, but got -1
  File "liboneflow.so", line <unknown>, in 
  File "liboneflow.so", line <unknown>, in 
  File "liboneflow.so", line <unknown>, in vm::ThreadCtx::TryReceiveAndRun()
  File "liboneflow.so", line <unknown>, in vm::EpStreamPolicyBase::Run(vm::Instruction*) const
  File "liboneflow.so", line <unknown>, in vm::Instruction::Compute()
  File "liboneflow.so", line <unknown>, in vm::OpCallInstructionPolicy::Compute(vm::Instruction*)
  File "liboneflow.so", line <unknown>, in 
  File "liboneflow.so", line <unknown>, in vm::OpCallInstructionUtil::Compute(vm::OpCallInstructionPolicy*, vm::Stream*, bool, bool)
  File "liboneflow.so", line <unknown>, in StatefulOpKernel::Compute(eager::CallContext*, ep::Stream*, user_op::OpKernel const*, user_op::OpKernelState*, user_op::OpKernelCache const*) const
  File "liboneflow.so", line <unknown>, in 
  File "oneflow/user/kernels/distributions/uniform_distribution.cpp", line 40, in operator()
    CHECK_GE_OR_THROW(elem_cnt, 0)
Error Type: oneflow.ErrorProto.check_failed_error
Stack trace (most recent call last) in thread 123483:
   Object "/home/temp/oneflow-1.0.0/build/liboneflow.so", at 0x70c8217ac249, in 
   Object "/home/temp/oneflow-1.0.0/build/liboneflow.so", at 0x70c8217ab847, in 
   Object "/home/temp/oneflow-1.0.0/build/liboneflow.so", at 0x70c8217a7368, in vm::ThreadCtx::TryReceiveAndRun()
   Object "/home/temp/oneflow-1.0.0/build/liboneflow.so", at 0x70c82173e818, in vm::EpStreamPolicyBase::Run(vm::Instruction*) const
   Object "/home/temp/oneflow-1.0.0/build/liboneflow.so", at 0x70c821742be6, in vm::Instruction::Compute()
   Object "/home/temp/oneflow-1.0.0/build/liboneflow.so", at 0x70c821748d2a, in vm::OpCallInstructionPolicy::Compute(vm::Instruction*)
   Object "/home/temp/oneflow-1.0.0/build/liboneflow.so", at 0x70c8217484af, in 
   Object "/home/temp/oneflow-1.0.0/build/liboneflow.so", at 0x70c82174dd90, in vm::OpCallInstructionUtil::Compute(vm::OpCallInstructionPolicy*, vm::Stream*, bool, bool)
   Object "/home/temp/oneflow-1.0.0/build/liboneflow.so", at 0x70c8225072d0, in StatefulOpKernel::Compute(eager::CallContext*, ep::Stream*, user_op::OpKernel const*, user_op::OpKernelState*, user_op::OpKernelCache const*) const
   Object "/home/temp/oneflow-1.0.0/build/liboneflow.so", at 0x70c821c59633, in 
   Object "/home/temp/oneflow-1.0.0/build/liboneflow.so", at 0x70c821c37a81, in UniformDistribution<(DeviceType)1, float>::operator()(ep::Stream*, long, float*, std::shared_ptr<Generator> const&) const
   Object "/home/temp/oneflow-1.0.0/build/liboneflow.so", at 0x70c821c3411e, in 
   Object "/home/temp/oneflow-1.0.0/build/liboneflow.so", at 0x70c81db48190, in 

Aborted (Signal sent by tkill() 123243 0)
Aborted (core dumped)

zeros:

import oneflow
oneflow.zeros(-1) # crash

output:

terminate called after throwing an instance of 'oneflow::Exception'
  what():  Check failed: (-1 >= 0): 
  File "liboneflow.so", line <unknown>, in 
  File "liboneflow.so", line <unknown>, in 
  File "liboneflow.so", line <unknown>, in vm::ThreadCtx::TryReceiveAndRun()
  File "liboneflow.so", line <unknown>, in vm::EpStreamPolicyBase::Run(vm::Instruction*) const
  File "liboneflow.so", line <unknown>, in vm::Instruction::Compute()
  File "liboneflow.so", line <unknown>, in vm::OpCallInstructionPolicy::Compute(vm::Instruction*)
  File "liboneflow.so", line <unknown>, in 
  File "liboneflow.so", line <unknown>, in vm::OpCallInstructionUtil::Compute(vm::OpCallInstructionPolicy*, vm::Stream*, bool, bool)
  File "liboneflow.so", line <unknown>, in StatefulOpKernel::Compute(eager::CallContext*, ep::Stream*, user_op::OpKernel const*, user_op::OpKernelState*, user_op::OpKernelCache const*) const
  File "oneflow/user/kernels/constant_kernel.cpp", line 47, in Compute
    CHECK_GE_OR_THROW(elem_cnt, 0)
Error Type: oneflow.ErrorProto.check_failed_error
Stack trace (most recent call last) in thread 123934:
   Object "/home/temp/oneflow-1.0.0/build/liboneflow.so", at 0x7c02e30ac249, in 
   Object "/home/temp/oneflow-1.0.0/build/liboneflow.so", at 0x7c02e30ab847, in 
   Object "/home/temp/oneflow-1.0.0/build/liboneflow.so", at 0x7c02e30a7368, in vm::ThreadCtx::TryReceiveAndRun()
   Object "/home/temp/oneflow-1.0.0/build/liboneflow.so", at 0x7c02e303e818, in vm::EpStreamPolicyBase::Run(vm::Instruction*) const
   Object "/home/temp/oneflow-1.0.0/build/liboneflow.so", at 0x7c02e3042be6, in vm::Instruction::Compute()
   Object "/home/temp/oneflow-1.0.0/build/liboneflow.so", at 0x7c02e3048d2a, in vm::OpCallInstructionPolicy::Compute(vm::Instruction*)
   Object "/home/temp/oneflow-1.0.0/build/liboneflow.so", at 0x7c02e30484af, in 
   Object "/home/temp/oneflow-1.0.0/build/liboneflow.so", at 0x7c02e304dd90, in vm::OpCallInstructionUtil::Compute(vm::OpCallInstructionPolicy*, vm::Stream*, bool, bool)
   Object "/home/temp/oneflow-1.0.0/build/liboneflow.so", at 0x7c02e3e07589, in StatefulOpKernel::Compute(eager::CallContext*, ep::Stream*, user_op::OpKernel const*, user_op::OpKernelState*, user_op::OpKernelCache const*) const
   Object "/home/temp/oneflow-1.0.0/build/liboneflow.so", at 0x7c02e33db793, in 
   Object "/home/temp/oneflow-1.0.0/build/liboneflow.so", at 0x7c02e06c5c32, in details::Throw::operator=(Error&&)
   Object "/home/temp/oneflow-1.0.0/build/liboneflow.so", at 0x7c02df448190, in 

Aborted (Signal sent by tkill() 123694 0)
Aborted (core dumped)

ones:

import oneflow
oneflow.ones (-1) # crash

output:

terminate called after throwing an instance of 'oneflow::Exception'
  what():  Check failed: (-1 >= 0): 
  File "liboneflow.so", line <unknown>, in 
  File "liboneflow.so", line <unknown>, in 
  File "liboneflow.so", line <unknown>, in vm::ThreadCtx::TryReceiveAndRun()
  File "liboneflow.so", line <unknown>, in vm::EpStreamPolicyBase::Run(vm::Instruction*) const
  File "liboneflow.so", line <unknown>, in vm::Instruction::Compute()
  File "liboneflow.so", line <unknown>, in vm::OpCallInstructionPolicy::Compute(vm::Instruction*)
  File "liboneflow.so", line <unknown>, in 
  File "liboneflow.so", line <unknown>, in vm::OpCallInstructionUtil::Compute(vm::OpCallInstructionPolicy*, vm::Stream*, bool, bool)
  File "liboneflow.so", line <unknown>, in StatefulOpKernel::Compute(eager::CallContext*, ep::Stream*, user_op::OpKernel const*, user_op::OpKernelState*, user_op::OpKernelCache const*) const
  File "oneflow/user/kernels/constant_kernel.cpp", line 47, in Compute
    CHECK_GE_OR_THROW(elem_cnt, 0)
Error Type: oneflow.ErrorProto.check_failed_error
Stack trace (most recent call last) in thread 124264:
   Object "/home/temp/oneflow-1.0.0/build/liboneflow.so", at 0x7541daafc249, in 
   Object "/home/temp/oneflow-1.0.0/build/liboneflow.so", at 0x7541daafb847, in 
   Object "/home/temp/oneflow-1.0.0/build/liboneflow.so", at 0x7541daaf7368, in vm::ThreadCtx::TryReceiveAndRun()
   Object "/home/temp/oneflow-1.0.0/build/liboneflow.so", at 0x7541daa8e818, in vm::EpStreamPolicyBase::Run(vm::Instruction*) const
   Object "/home/temp/oneflow-1.0.0/build/liboneflow.so", at 0x7541daa92be6, in vm::Instruction::Compute()
   Object "/home/temp/oneflow-1.0.0/build/liboneflow.so", at 0x7541daa98d2a, in vm::OpCallInstructionPolicy::Compute(vm::Instruction*)
   Object "/home/temp/oneflow-1.0.0/build/liboneflow.so", at 0x7541daa984af, in 
   Object "/home/temp/oneflow-1.0.0/build/liboneflow.so", at 0x7541daa9dd90, in vm::OpCallInstructionUtil::Compute(vm::OpCallInstructionPolicy*, vm::Stream*, bool, bool)
   Object "/home/temp/oneflow-1.0.0/build/liboneflow.so", at 0x7541db857589, in StatefulOpKernel::Compute(eager::CallContext*, ep::Stream*, user_op::OpKernel const*, user_op::OpKernelState*, user_op::OpKernelCache const*) const
   Object "/home/temp/oneflow-1.0.0/build/liboneflow.so", at 0x7541dae2b793, in 
   Object "/home/temp/oneflow-1.0.0/build/liboneflow.so", at 0x7541d8115c32, in details::Throw::operator=(Error&&)
   Object "/home/temp/oneflow-1.0.0/build/liboneflow.so", at 0x7541d6e98190, in 

Aborted (Signal sent by tkill() 124024 0)
Aborted (core dumped)

System Information