Skip to content

64-bit strings and conditional replacement leads to segfault/memory error #1890

@arnocandel

Description

@arnocandel

0.8.0.dai-1.73 and 0.8.0.dev91

import datatable as dt

# either one fails, different error

X = dt.Frame(['Z9YTD8K0', 'K ', 'BLSU', 'BLSU', 'JFQAG U', 'BLSU', 'JFQAG U', 'BLSU', 'Z9YTD8K0', 'JFQAG U'])  # Segfault
# X = dt.Frame(['A'] * 10)  # MemoryError

X = X[:, dt.stype.str64(dt.f[0])]  # problem, str32 works

print(X)
cat = X.names[0]

Y = X[:, dt.count(), dt.by(cat)]
Y[:, "col"] = Y[:, 0] 
print(Y)

# Y[:, 2] = 'repl'  # works
Y[dt.f[1] < 100, 2] = 'B'  

print(Y)
    C0      
--  --------
 0  Z9YTD8K0
 1  K       
 2  BLSU    
 3  BLSU    
 4  JFQAG U 
 5  BLSU    
 6  JFQAG U 
 7  BLSU    
 8  Z9YTD8K0
 9  JFQAG U 

[10 rows x 1 column]

    C0        C1  col     
--  --------  --  --------
 0  BLSU       4  BLSU    
 1  JFQAG U    3  JFQAG U 
 2  K          1  K       
 3  Z9YTD8K0   2  Z9YTD8K0

[4 rows x 3 columns]

Segmentation fault
    C0
--  --
 0  A 
 1  A 
 2  A 
 3  A 
 4  A 
 5  A 
 6  A 
 7  A 
 8  A 
 9  A 

[10 rows x 1 column]

    C0  C1  col
--  --  --  ---
 0  A   10  A  

[1 row x 3 columns]

Traceback (most recent call last):
  File "debug.py", line 20, in <module>
    print(Y)
  File "/home/arno/h2oai/env/lib/python3.6/site-packages/datatable/widget.py", line 146, in as_string
    out = self._draw(to_string=True)
  File "/home/arno/h2oai/env/lib/python3.6/site-packages/datatable/widget.py", line 156, in _draw
    self._fetch_data()
  File "/home/arno/h2oai/env/lib/python3.6/site-packages/datatable/widget.py", line 339, in _fetch_data
    self._view_col0 + self._view_ncols)
  File "/home/arno/h2oai/env/lib/python3.6/site-packages/datatable/widget.py", line 65, in fetch_data
    self.view_data = view.to_list()
MemoryError

Metadata

Metadata

Assignees

Labels

segfaultSevere bugs that lead to crashes / seg.faults / process termination

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions