h2o deep_copy force Java Ошибка пространства кучи - PullRequest
0 голосов
/ 19 апреля 2020

Я запускаю следующий python код, который приводит к ошибке Java Heap Space. Почему сборщик мусора не освобождает использованную память после возврата из метода do_something()? Нужно ли вручную освобождать память в конце метода?

import h2o 
import numpy as np
import pandas as pd


h2o.init(max_mem_size='2G')

df_input = pd.DataFrame(data=np.random.randn(10, 10))

def do_something(df):
    frame = h2o.H2OFrame(df)
    #predict some output based on frame 
    #more h2o objects are being created here eventually ..... 
    return

for i in range(10000000):
    do_something(df_input)
    print(h2o.ls())

1 Ответ

0 голосов
/ 19 апреля 2020

Сборщик мусора удаляет только те объекты, на которые нет ссылок, а глубокая копия создает полную копию объекта и привязывается к ссылке.

Если вы хотите, чтобы объект был освобожден, вам нужно удалите его.

Эта обновленная программа достигает эффекта, который вы изначально искали.

import h2o 

h2o.init(max_mem_size='2G')

df = h2o.create_frame(frame_id='start_frame', rows=1000000, cols=10)
print(df.head())

def copy_and_remove_frame(i, df):
    df_copy = h2o.deep_copy(df, 'copy_'+str(i))
    h2o.remove(df_copy)
    return

for i in range(50):
    copy_and_remove_frame(i, df)
    print(h2o.ls())

Выходные данные из этой обновленной программы "ls" не растут на каждой итерации, поскольку каждая итерация очищает после себя:

[['key'], ['start_frame']]
[['key'], ['start_frame']]
[['key'], ['py_188_sid_bc5e'], ['start_frame']]
[['key'], ['py_190_sid_bc5e'], ['start_frame']]
[['key'], ['py_192_sid_bc5e'], ['start_frame']]
[['key'], ['py_194_sid_bc5e'], ['start_frame']]
[['key'], ['py_194_sid_bc5e'], ['py_197_sid_bc5e'], ['start_frame']]
[['key'], ['py_194_sid_bc5e'], ['py_198_sid_bc5e'], ['start_frame']]
[['key'], ['py_194_sid_bc5e'], ['py_200_sid_bc5e'], ['start_frame']]
[['key'], ['py_194_sid_bc5e'], ['py_202_sid_bc5e'], ['start_frame']]
[['key'], ['py_194_sid_bc5e'], ['py_204_sid_bc5e'], ['start_frame']]
[['key'], ['start_frame']]
[['key'], ['py_208_sid_bc5e'], ['start_frame']]
[['key'], ['start_frame']]
[['key'], ['py_212_sid_bc5e'], ['start_frame']]
[['key'], ['py_214_sid_bc5e'], ['start_frame']]
[['key'], ['py_216_sid_bc5e'], ['start_frame']]
[['key'], ['py_218_sid_bc5e'], ['start_frame']]
[['key'], ['py_220_sid_bc5e'], ['start_frame']]
[['key'], ['py_220_sid_bc5e'], ['start_frame']]
[['key'], ['py_220_sid_bc5e'], ['start_frame']]
[['key'], ['py_220_sid_bc5e'], ['py_226_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['py_240_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['py_242_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['py_244_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['py_246_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['py_246_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['py_246_sid_bc5e'], ['py_250_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['py_246_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['py_246_sid_bc5e'], ['py_254_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['py_246_sid_bc5e'], ['py_256_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['py_246_sid_bc5e'], ['py_258_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['py_246_sid_bc5e'], ['py_260_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['py_246_sid_bc5e'], ['py_262_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['py_246_sid_bc5e'], ['py_264_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['py_246_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['py_246_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['py_246_sid_bc5e'], ['py_270_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['py_246_sid_bc5e'], ['py_272_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['py_246_sid_bc5e'], ['py_274_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['py_246_sid_bc5e'], ['py_276_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['py_246_sid_bc5e'], ['py_278_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['py_246_sid_bc5e'], ['py_280_sid_bc5e'], ['start_frame']]
[['key'], ['py_228_sid_bc5e'], ['py_246_sid_bc5e'], ['py_280_sid_bc5e'], ['start_frame']]

[Теперь ... вы могли бы ожидать, что сборщик мусора python невидимо сделает декремент refcnt для объекта df_copy , поскольку он не возвращается из функции, вызывая неявный h2o.remove () в H2OFrame, хранящемся в памяти Java на внутреннем сервере, когда refcnt python достигает 0. И как только объект H2OFrame высокого уровня удаляется из внутреннего блока памяти H2O-3 DKV, java сборщик мусора будет coop освобождать теперь освобожденные базовые объекты байтового массива, которые фактически содержат th Электронные данные. Но, как видите, слой python этого не сделал. Я думаю, это потому, что ученым, работающим с данными, слишком трудно отскакивать между ячейками в ноутбуках Jupyter, чтобы помнить точную жизнеспособность различных фреймов данных таким компьютерным способом, который больше подходит для программ, чем для людей. И если вы просите глубокую копию, вы действительно хотели сделать это и хотите сохранить ее. Таким образом, вы должны явно удалить его. Хуже того, что эти дорогостоящие фреймы с большими данными просто исчезают на вас, это хуже (то есть приводит к звонкам в службу поддержки от ученых, которые задаются вопросом, что же случилось с их данными :-). ]




Вывод из исходного цикла записи, который показывает количество скопированных кадров, увеличивающихся (показывается "ls") каждой итерации. Это, конечно, приводит к ошибке, так как память не бесконечна:

<code>Checking whether there is an H2O instance running at http://localhost:54321 ..... not found.
Attempting to start a local H2O server...
  Java Version: java version "1.8.0_231"; Java(TM) SE Runtime Environment (build 1.8.0_231-b11); Java HotSpot(TM) 64-Bit Server VM (build 25.231-b11, mixed mode)
  Starting server from /Users/tomk/anaconda/envs/h2o3/lib/python3.6/site-packages/h2o/backend/bin/h2o.jar
  Ice root: /var/folders/vv/pkzvhy8x5hsfbsjg75_6q4ch0000gn/T/tmpagdl10y4
  JVM stdout: /var/folders/vv/pkzvhy8x5hsfbsjg75_6q4ch0000gn/T/tmpagdl10y4/h2o_tomk_started_from_python.out
  JVM stderr: /var/folders/vv/pkzvhy8x5hsfbsjg75_6q4ch0000gn/T/tmpagdl10y4/h2o_tomk_started_from_python.err
  Server is running at http://127.0.0.1:54321
Connecting to H2O server at http://127.0.0.1:54321 ... successful.
H2O_cluster_uptime: 02 secs
H2O_cluster_timezone:   America/Los_Angeles
H2O_data_parsing_timezone:  UTC
H2O_cluster_version:    3.30.0.1
H2O_cluster_version_age:    15 days
H2O_cluster_name:   H2O_from_python_tomk_fv2qrn
H2O_cluster_total_nodes:    1
H2O_cluster_free_memory:    1.778 Gb
H2O_cluster_total_cores:    16
H2O_cluster_allowed_cores:  16
H2O_cluster_status: accepting new members, healthy
H2O_connection_url: http://127.0.0.1:54321
H2O_connection_proxy:   {"http": null, "https": null}
H2O_internal_security:  False
H2O_API_Extensions: Amazon S3, XGBoost, Algos, AutoML, Core V3, TargetEncoder, Core V4
Python_version: 3.6.10 final
Create Frame progress: |██████████████████████████████████████████████████| 100%
C1  C2  C3  C4  C5  C6  C7  C8  C9  C10
61.201  -76.343 -10.6917    98  c4.l71  c5.l21  -48.2047    0   nan -53.9755
-65.8869    34.639  -24.3842    61  c4.l63  c5.l73  -50.8215    0   52  -45.5802
73.5673 -65.7778    -93.1551    65  c4.l16  c5.l22  55.5902 0   97  -48.3528
12.5487 -17.0889    -38.5781    -61 c4.l39  c5.l85  -9.83111    0   77  50.9879
-54.0852    67.8506 -17.0522    81  c4.l40  c5.l9   41.9873 0   -8  -80.1168
-18.1366    -49.2238    -5.92224    24  c4.l95  c5.l11  -20.7617    0   29  92.2341
-14.861 11.7016 -51.1821    -60 c4.l32  c5.l17  -35.5073    0   -14 79.5753
-37.3768    -23.8756    15.1105 -65 c4.l20  c5.l32  29.6603 0   -11 -41.3118
-71.0224    9.29381 -74.2127    50  c4.l49  c5.l22  -90.8299    0   -50 8.42312
31.9923 0.228002    5.50001 -8  c4.l56  c5.l80  -92.0688    0   -75 -65.3436

[['key'], ['copy_0'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_2'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_2'], ['copy_3'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_2'], ['copy_3'], ['copy_4'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_2'], ['copy_3'], ['copy_4'], ['copy_5'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_2'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_2'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_2'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_2'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_2'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_2'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_2'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_13'], ['copy_2'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_13'], ['copy_14'], ['copy_2'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_13'], ['copy_14'], ['copy_15'], ['copy_2'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_13'], ['copy_14'], ['copy_15'], ['copy_16'], ['copy_2'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_13'], ['copy_14'], ['copy_15'], ['copy_16'], ['copy_17'], ['copy_2'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_13'], ['copy_14'], ['copy_15'], ['copy_16'], ['copy_17'], ['copy_18'], ['copy_2'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_13'], ['copy_14'], ['copy_15'], ['copy_16'], ['copy_17'], ['copy_18'], ['copy_19'], ['copy_2'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_13'], ['copy_14'], ['copy_15'], ['copy_16'], ['copy_17'], ['copy_18'], ['copy_19'], ['copy_2'], ['copy_20'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_13'], ['copy_14'], ['copy_15'], ['copy_16'], ['copy_17'], ['copy_18'], ['copy_19'], ['copy_2'], ['copy_20'], ['copy_21'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_13'], ['copy_14'], ['copy_15'], ['copy_16'], ['copy_17'], ['copy_18'], ['copy_19'], ['copy_2'], ['copy_20'], ['copy_21'], ['copy_22'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_13'], ['copy_14'], ['copy_15'], ['copy_16'], ['copy_17'], ['copy_18'], ['copy_19'], ['copy_2'], ['copy_20'], ['copy_21'], ['copy_22'], ['copy_23'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_13'], ['copy_14'], ['copy_15'], ['copy_16'], ['copy_17'], ['copy_18'], ['copy_19'], ['copy_2'], ['copy_20'], ['copy_21'], ['copy_22'], ['copy_23'], ['copy_24'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_13'], ['copy_14'], ['copy_15'], ['copy_16'], ['copy_17'], ['copy_18'], ['copy_19'], ['copy_2'], ['copy_20'], ['copy_21'], ['copy_22'], ['copy_23'], ['copy_24'], ['copy_25'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_13'], ['copy_14'], ['copy_15'], ['copy_16'], ['copy_17'], ['copy_18'], ['copy_19'], ['copy_2'], ['copy_20'], ['copy_21'], ['copy_22'], ['copy_23'], ['copy_24'], ['copy_25'], ['copy_26'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_13'], ['copy_14'], ['copy_15'], ['copy_16'], ['copy_17'], ['copy_18'], ['copy_19'], ['copy_2'], ['copy_20'], ['copy_21'], ['copy_22'], ['copy_23'], ['copy_24'], ['copy_25'], ['copy_26'], ['copy_27'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_13'], ['copy_14'], ['copy_15'], ['copy_16'], ['copy_17'], ['copy_18'], ['copy_19'], ['copy_2'], ['copy_20'], ['copy_21'], ['copy_22'], ['copy_23'], ['copy_24'], ['copy_25'], ['copy_26'], ['copy_27'], ['copy_28'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_13'], ['copy_14'], ['copy_15'], ['copy_16'], ['copy_17'], ['copy_18'], ['copy_19'], ['copy_2'], ['copy_20'], ['copy_21'], ['copy_22'], ['copy_23'], ['copy_24'], ['copy_25'], ['copy_26'], ['copy_27'], ['copy_28'], ['copy_29'], ['copy_3'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_13'], ['copy_14'], ['copy_15'], ['copy_16'], ['copy_17'], ['copy_18'], ['copy_19'], ['copy_2'], ['copy_20'], ['copy_21'], ['copy_22'], ['copy_23'], ['copy_24'], ['copy_25'], ['copy_26'], ['copy_27'], ['copy_28'], ['copy_29'], ['copy_3'], ['copy_30'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_13'], ['copy_14'], ['copy_15'], ['copy_16'], ['copy_17'], ['copy_18'], ['copy_19'], ['copy_2'], ['copy_20'], ['copy_21'], ['copy_22'], ['copy_23'], ['copy_24'], ['copy_25'], ['copy_26'], ['copy_27'], ['copy_28'], ['copy_29'], ['copy_3'], ['copy_30'], ['copy_31'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_13'], ['copy_14'], ['copy_15'], ['copy_16'], ['copy_17'], ['copy_18'], ['copy_19'], ['copy_2'], ['copy_20'], ['copy_21'], ['copy_22'], ['copy_23'], ['copy_24'], ['copy_25'], ['copy_26'], ['copy_27'], ['copy_28'], ['copy_29'], ['copy_3'], ['copy_30'], ['copy_31'], ['copy_32'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_13'], ['copy_14'], ['copy_15'], ['copy_16'], ['copy_17'], ['copy_18'], ['copy_19'], ['copy_2'], ['copy_20'], ['copy_21'], ['copy_22'], ['copy_23'], ['copy_24'], ['copy_25'], ['copy_26'], ['copy_27'], ['copy_28'], ['copy_29'], ['copy_3'], ['copy_30'], ['copy_31'], ['copy_32'], ['copy_33'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_13'], ['copy_14'], ['copy_15'], ['copy_16'], ['copy_17'], ['copy_18'], ['copy_19'], ['copy_2'], ['copy_20'], ['copy_21'], ['copy_22'], ['copy_23'], ['copy_24'], ['copy_25'], ['copy_26'], ['copy_27'], ['copy_28'], ['copy_29'], ['copy_3'], ['copy_30'], ['copy_31'], ['copy_32'], ['copy_33'], ['copy_34'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
[['key'], ['copy_0'], ['copy_1'], ['copy_10'], ['copy_11'], ['copy_12'], ['copy_13'], ['copy_14'], ['copy_15'], ['copy_16'], ['copy_17'], ['copy_18'], ['copy_19'], ['copy_2'], ['copy_20'], ['copy_21'], ['copy_22'], ['copy_23'], ['copy_24'], ['copy_25'], ['copy_26'], ['copy_27'], ['copy_28'], ['copy_29'], ['copy_3'], ['copy_30'], ['copy_31'], ['copy_32'], ['copy_33'], ['copy_34'], ['copy_35'], ['copy_4'], ['copy_5'], ['copy_6'], ['copy_7'], ['copy_8'], ['copy_9'], ['start_frame']]
---------------------------------------------------------------------------
H2OServerError                            Traceback (most recent call last)
<ipython-input-2-6dd1ee76f72f> in <module>
     11 
     12 for i in range(50):
---> 13     create_frame(i, df)
     14     print(h2o.ls())

<ipython-input-2-6dd1ee76f72f> in create_frame(i, df)
      7 
      8 def create_frame(i, df):
----> 9     df_copy = h2o.deep_copy(df, 'copy_'+str(i))
     10     return
     11 

~/anaconda/envs/h2o3/lib/python3.6/site-packages/h2o/h2o.py in deep_copy(data, xid)
    951     check_frame_id(xid)
    952     duplicate = data.apply(lambda x: x)
--> 953     duplicate._ex = ExprNode("assign", xid, duplicate)._eval_driver(False)
    954     duplicate._ex._cache._id = xid
    955     duplicate._ex._children = None

~/anaconda/envs/h2o3/lib/python3.6/site-packages/h2o/expr.py in _eval_driver(self, top)
    108     def _eval_driver(self, top):
    109         exec_str = self._get_ast_str(top)
--> 110         res = ExprNode.rapids(exec_str)
    111         if 'scalar' in res:
    112             if isinstance(res['scalar'], list):

~/anaconda/envs/h2o3/lib/python3.6/site-packages/h2o/expr.py in rapids(expr)
    247         :returns: The JSON response (as a python dictionary) of the Rapids execution
    248         """
--> 249         return h2o.api("POST /99/Rapids", data={"ast": expr, "session_id": h2o.connection().session_id})
    250 
    251 

~/anaconda/envs/h2o3/lib/python3.6/site-packages/h2o/h2o.py in api(endpoint, data, json, filename, save_to)
    107     # type checks are performed in H2OConnection class
    108     _check_connection()
--> 109     return h2oconn.request(endpoint, data=data, json=json, filename=filename, save_to=save_to)
    110 
    111 

~/anaconda/envs/h2o3/lib/python3.6/site-packages/h2o/backend/connection.py in request(self, endpoint, data, json, filename, save_to)
    476                 save_to = save_to(resp)
    477             self._log_end_transaction(start_time, resp)
--> 478             return self._process_response(resp, save_to)
    479 
    480         except (requests.exceptions.ConnectionError, requests.exceptions.HTTPError) as e:

~/anaconda/envs/h2o3/lib/python3.6/site-packages/h2o/backend/connection.py in _process_response(response, save_to)
    827         # Note that it is possible to receive valid H2OErrorV3 object in this case, however it merely means the server
    828         # did not provide the correct status code.
--> 829         raise H2OServerError("HTTP %d %s:\n%r" % (status_code, response.reason, data))
    830 
    831 

H2OServerError: HTTP 500 java.lang.OutOfMemoryError: GC overhead limit exceeded:
'<html>\n<head>\n<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/>\n<title>Error 500 java.lang.OutOfMemoryError: GC overhead limit exceeded\n</title>\n</head>\n<body>\n<h2>HTTP ERROR: 500</h2>\n<p>Problem accessing /99/Rapids. Reason:\n<pre>    java.lang.OutOfMemoryError: GC overhead limit exceeded\n
\ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n '
...