# Buggy code
def _set_inputs(self, inputs):
    super()._set_inputs(inputs)
    it = iter(inputs)
    for attr in ["_data", "_label", "_sample_weight", "_init_score"]:
        if getattr(self, attr) is not None:
            setattr(self, attr, next(it))
    for attr in [
        "_eval_datas",
        "_eval_labels",
        "_eval_sample_weights",
        "_eval_init_scores",
    ]:
        new_list = []
        for c in getattr(self, attr, None) or []:
            if c is not None:
                new_list.append(next(it))
        setattr(self, attr, new_list or None)


# Traceback (lightgbm.basic.LightGBMError)
Traceback (most recent call last):
File "/home/admin/work/_public-mars-0.6.2.zip/mars/promise.py", line 100, in _wrapped
result = func(*args, **kwargs)
File "/home/admin/work/_public-mars-0.6.2.zip/mars/worker/calc.py", line 301, in <lambda>
.then(lambda context_dict: _start_calc(context_dict)) \
File "/home/admin/work/_public-mars-0.6.2.zip/mars/worker/calc.py", line 276, in _start_calc
return self._calc_results(session_id, graph_key, graph, context_dict, chunk_targets)
File "/home/admin/work/_public-mars-0.6.2.zip/mars/utils.py", line 377, in _wrapped
return func(*args, **kwargs)
File "/home/admin/work/_public-mars-0.6.2.zip/mars/worker/calc.py", line 200, in _calc_results
chunk_targets, retval=False).result()
File "src/gevent/event.py", line 383, in gevent._gevent_cevent.AsyncResult.result
File "src/gevent/event.py", line 305, in gevent._gevent_cevent.AsyncResult.get
File "src/gevent/event.py", line 335, in gevent._gevent_cevent.AsyncResult.get
File "src/gevent/event.py", line 323, in gevent._gevent_cevent.AsyncResult.get
File "src/gevent/event.py", line 303, in gevent._gevent_cevent.AsyncResult._raise_exception
File "/opt/conda/lib/python3.7/site-packages/gevent/_compat.py", line 65, in reraise
raise value.with_traceback(tb)
File "/opt/conda/lib/python3.7/site-packages/gevent/threadpool.py", line 142, in __run_task
thread_result.set(func(*args, **kwargs))
File "mars/actors/pool/gevent_pool.pyx", line 127, in mars.actors.pool.gevent_pool.GeventThreadPool._wrap_watch.inner
result = fn(*args, **kwargs)
File "/home/admin/work/_public-mars-0.6.2.zip/mars/executor.py", line 698, in execute_graph
res = graph_execution.execute(retval)
File "/home/admin/work/_public-mars-0.6.2.zip/mars/executor.py", line 579, in execute
future.result()
File "/opt/conda/lib/python3.7/concurrent/futures/_base.py", line 435, in result
return self.__get_result()
File "/opt/conda/lib/python3.7/concurrent/futures/_base.py", line 384, in __get_result
raise self._exception
File "/opt/conda/lib/python3.7/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/home/admin/work/_public-mars-0.6.2.zip/mars/utils.py", line 451, in _inner
return func(*args, **kwargs)
File "/home/admin/work/_public-mars-0.6.2.zip/mars/executor.py", line 446, in _execute_operand
self.handle_op(first_op, results, self._mock)
File "/home/admin/work/_public-mars-0.6.2.zip/mars/executor.py", line 378, in handle_op
return Executor.handle(*args, **kw)
File "/home/admin/work/_public-mars-0.6.2.zip/mars/executor.py", line 649, in handle
return runner(results, op)
File "/home/admin/work/_public-mars-0.6.2.zip/mars/learn/contrib/lightgbm/_train.py", line 304, in execute
eval_init_score=eval_init_score, **op.kwds)
File "/opt/conda/lib/python3.7/site-packages/lightgbm/sklearn.py", line 800, in fit
callbacks=callbacks)
File "/opt/conda/lib/python3.7/site-packages/lightgbm/sklearn.py", line 595, in fit
callbacks=callbacks)
File "/opt/conda/lib/python3.7/site-packages/lightgbm/engine.py", line 228, in train
booster = Booster(params=params, train_set=train_set)
File "/opt/conda/lib/python3.7/site-packages/lightgbm/basic.py", line 1659, in __init__
num_machines=params.get("num_machines", num_machines))
File "/opt/conda/lib/python3.7/site-packages/lightgbm/basic.py", line 1790, in set_network
ctypes.c_int(num_machines)))
File "/opt/conda/lib/python3.7/site-packages/lightgbm/basic.py", line 47, in _safe_call
raise LightGBMError(decode_string(_LIB.LGBM_GetLastError()))
lightgbm.basic.LightGBMError: Binding port 43458 failed

# Fixed code
def _set_inputs(self, inputs):
    super()._set_inputs(inputs)
    it = iter(inputs)
    for attr in ["_data", "_label", "_sample_weight", "_init_score"]:
        if getattr(self, attr) is not None:
            setattr(self, attr, next(it))
    for attr in [
        "_eval_datas",
        "_eval_labels",
        "_eval_sample_weights",
        "_eval_init_scores",
    ]:
        new_list = []
        for c in getattr(self, attr, None) or []:
            if c is not None:
                new_list.append(next(it))
        setattr(self, attr, new_list or None)

    if self._worker_ports is not None:
        self._worker_ports = next(it)