See
<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/5495/display/redirect>
Changes:
------------------------------------------
[...truncated 659.26 KB...]
copying apache_beam/typehints/typecheck.py ->
apache-beam-2.20.0.dev0/apache_beam/typehints
copying apache_beam/typehints/typed_pipeline_test.py ->
apache-beam-2.20.0.dev0/apache_beam/typehints
copying apache_beam/typehints/typed_pipeline_test_py3.py ->
apache-beam-2.20.0.dev0/apache_beam/typehints
copying apache_beam/typehints/typehints.py ->
apache-beam-2.20.0.dev0/apache_beam/typehints
copying apache_beam/typehints/typehints_test.py ->
apache-beam-2.20.0.dev0/apache_beam/typehints
copying apache_beam/typehints/typehints_test_py3.py ->
apache-beam-2.20.0.dev0/apache_beam/typehints
copying apache_beam/utils/__init__.py ->
apache-beam-2.20.0.dev0/apache_beam/utils
copying apache_beam/utils/annotations.py ->
apache-beam-2.20.0.dev0/apache_beam/utils
copying apache_beam/utils/annotations_test.py ->
apache-beam-2.20.0.dev0/apache_beam/utils
copying apache_beam/utils/counters.pxd ->
apache-beam-2.20.0.dev0/apache_beam/utils
copying apache_beam/utils/counters.py ->
apache-beam-2.20.0.dev0/apache_beam/utils
copying apache_beam/utils/counters_test.py ->
apache-beam-2.20.0.dev0/apache_beam/utils
copying apache_beam/utils/interactive_utils.py ->
apache-beam-2.20.0.dev0/apache_beam/utils
copying apache_beam/utils/plugin.py -> apache-beam-2.20.0.dev0/apache_beam/utils
copying apache_beam/utils/processes.py ->
apache-beam-2.20.0.dev0/apache_beam/utils
copying apache_beam/utils/processes_test.py ->
apache-beam-2.20.0.dev0/apache_beam/utils
copying apache_beam/utils/profiler.py ->
apache-beam-2.20.0.dev0/apache_beam/utils
copying apache_beam/utils/proto_utils.py ->
apache-beam-2.20.0.dev0/apache_beam/utils
copying apache_beam/utils/retry.py -> apache-beam-2.20.0.dev0/apache_beam/utils
copying apache_beam/utils/retry_test.py ->
apache-beam-2.20.0.dev0/apache_beam/utils
copying apache_beam/utils/subprocess_server.py ->
apache-beam-2.20.0.dev0/apache_beam/utils
copying apache_beam/utils/thread_pool_executor.py ->
apache-beam-2.20.0.dev0/apache_beam/utils
copying apache_beam/utils/thread_pool_executor_test.py ->
apache-beam-2.20.0.dev0/apache_beam/utils
copying apache_beam/utils/timestamp.py ->
apache-beam-2.20.0.dev0/apache_beam/utils
copying apache_beam/utils/timestamp_test.py ->
apache-beam-2.20.0.dev0/apache_beam/utils
copying apache_beam/utils/urns.py -> apache-beam-2.20.0.dev0/apache_beam/utils
copying apache_beam/utils/windowed_value.pxd ->
apache-beam-2.20.0.dev0/apache_beam/utils
copying apache_beam/utils/windowed_value.py ->
apache-beam-2.20.0.dev0/apache_beam/utils
copying apache_beam/utils/windowed_value_test.py ->
apache-beam-2.20.0.dev0/apache_beam/utils
Writing apache-beam-2.20.0.dev0/setup.cfg
creating dist
Creating tar archive
removing 'apache-beam-2.20.0.dev0' (and everything under it)
SDK_LOCATION=$(find dist/apache-beam-*.tar.gz)
find dist/apache-beam-*.tar.gz
# Run ValidatesRunner tests on Google Cloud Dataflow service
echo ">>> RUNNING DATAFLOW RUNNER VALIDATESCONTAINER TEST"
>>> RUNNING DATAFLOW RUNNER VALIDATESCONTAINER TEST
python setup.py nosetests \
--attr ValidatesContainer \
--nologcapture \
--processes=1 \
--process-timeout=900 \
--with-xunitmp \
--xunitmp-file=$XUNIT_FILE \
--ignore-files '.*py3\d?\.py$' \
--test-pipeline-options=" \
--runner=TestDataflowRunner \
--project=$PROJECT \
--worker_harness_container_image=$CONTAINER:$TAG \
--staging_location=$GCS_LOCATION/staging-validatesrunner-test \
--temp_location=$GCS_LOCATION/temp-validatesrunner-test \
--output=$GCS_LOCATION/output \
--sdk_location=$SDK_LOCATION \
--num_workers=1"
setup.py:245: UserWarning: You are using Apache Beam with Python 2. New
releases of Apache Beam will soon support Python 3 only.
'You are using Apache Beam with Python 2. '
<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/container/venv/python/local/lib/python2.7/site-packages/setuptools/dist.py>:476:
UserWarning: Normalizing '2.20.0.dev' to '2.20.0.dev0'
normalized_version,
running nosetests
running egg_info
<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/gen_protos.py>:224:
UserWarning: Installing grpcio-tools is recommended for development.
warnings.warn('Installing grpcio-tools is recommended for development.')
Skipping proto regeneration: all files up to date
writing requirements to apache_beam.egg-info/requires.txt
writing apache_beam.egg-info/PKG-INFO
writing top-level names to apache_beam.egg-info/top_level.txt
writing dependency_links to apache_beam.egg-info/dependency_links.txt
writing entry points to apache_beam.egg-info/entry_points.txt
reading manifest file 'apache_beam.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching 'README.md'
warning: no files found matching 'NOTICE'
warning: no files found matching 'LICENSE'
writing manifest file 'apache_beam.egg-info/SOURCES.txt'
<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/apache_beam/__init__.py>:82:
UserWarning: You are using Apache Beam with Python 2. New releases of Apache
Beam will soon support Python 3 only.
'You are using Apache Beam with Python 2. '
No handlers could be found for logger
"apache_beam.io.gcp.datastore.v1.datastoreio"
WARNING:root:python-snappy is not installed; some tests will be skipped.
WARNING:root:Tensorflow is not installed, so skipping some tests.
WARNING:apache_beam.runners.interactive.interactive_environment:Interactive
Beam requires Python 3.5.3+.
WARNING:apache_beam.runners.interactive.interactive_environment:Dependencies
required for Interactive Beam PCollection visualization are not available,
please use: `pip install apache-beam[interactive]` to install necessary
dependencies to enable all data visualization features.
WARNING:apache_beam.runners.interactive.interactive_environment:You cannot use
Interactive Beam features when you are not in an interactive environment such
as a Jupyter notebook or ipython terminal.
WARNING:root:Make sure that locally built Python SDK docker image has Python
2.7 interpreter.
<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/apache_beam/transforms/trigger_test.py>:541:
YAMLLoadWarning: calling yaml.load_all() without Loader=... is deprecated, as
the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full
details.
for spec in yaml.load_all(open(transcript_filename)):
WARNING:apache_beam.options.pipeline_options:--region not set; will default to
us-central1. Future releases of Beam will require the user to set --region
explicitly, or else have a default set via the gcloud tool.
https://cloud.google.com/compute/docs/regions-zones
WARNING:apache_beam.options.pipeline_options:--region not set; will default to
us-central1. Future releases of Beam will require the user to set --region
explicitly, or else have a default set via the gcloud tool.
https://cloud.google.com/compute/docs/regions-zones
test_wordcount_fnapi_it (apache_beam.examples.wordcount_it_test.WordCountIT)
... ERROR
test_metrics_fnapi_it
(apache_beam.runners.dataflow.dataflow_exercise_metrics_pipeline_test.ExerciseMetricsPipelineTest)
... ERROR
======================================================================
ERROR: test_wordcount_fnapi_it
(apache_beam.examples.wordcount_it_test.WordCountIT)
----------------------------------------------------------------------
Traceback (most recent call last):
File
"<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/container/venv/python/local/lib/python2.7/site-packages/nose/plugins/multiprocess.py",>
line 812, in run
test(orig)
File
"<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/container/venv/python/local/lib/python2.7/site-packages/nose/case.py",>
line 45, in __call__
return self.run(*arg, **kwarg)
File
"<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/container/venv/python/local/lib/python2.7/site-packages/nose/case.py",>
line 133, in run
self.runTest(result)
File
"<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/container/venv/python/local/lib/python2.7/site-packages/nose/case.py",>
line 151, in runTest
test(result)
File "/usr/lib/python2.7/unittest/case.py", line 393, in __call__
return self.run(*args, **kwds)
File "/usr/lib/python2.7/unittest/case.py", line 329, in run
testMethod()
File
"<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/apache_beam/examples/wordcount_it_test.py",>
line 54, in test_wordcount_fnapi_it
self._run_wordcount_it(wordcount.run, experiment='beam_fn_api')
File
"<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/apache_beam/examples/wordcount_it_test.py",>
line 91, in _run_wordcount_it
save_main_session=False)
File
"<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/apache_beam/examples/wordcount.py",>
line 121, in run
result = p.run()
File
"<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/apache_beam/pipeline.py",>
line 472, in run
self._options).run(False)
File
"<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/apache_beam/pipeline.py",>
line 485, in run
return self.runner.run_pipeline(self, self._options)
File
"<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/apache_beam/runners/dataflow/test_dataflow_runner.py",>
line 75, in run_pipeline
self.result.cancel()
File
"<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/apache_beam/runners/dataflow/dataflow_runner.py",>
line 1559, in cancel
return self.state
File
"<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/apache_beam/runners/dataflow/dataflow_runner.py",>
line 1497, in state
self._update_job()
File
"<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/apache_beam/runners/dataflow/dataflow_runner.py",>
line 1450, in _update_job
self._job = self._runner.dataflow_client.get_job(self.job_id())
File
"<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/apache_beam/utils/retry.py",>
line 234, in wrapper
return fun(*args, **kwargs)
File
"<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/apache_beam/runners/dataflow/internal/apiclient.py",>
line 690, in get_job
response = self._client.projects_locations_jobs.Get(request)
File
"<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/apache_beam/runners/dataflow/internal/clients/dataflow/dataflow_v1b3_client.py",>
line 661, in Get
config, request, global_params=global_params)
File
"<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/container/venv/python/local/lib/python2.7/site-packages/apitools/base/py/base_api.py",>
line 731, in _RunMethod
return self.ProcessHttpResponse(method_config, http_response, request)
File
"<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/container/venv/python/local/lib/python2.7/site-packages/apitools/base/py/base_api.py",>
line 737, in ProcessHttpResponse
self.__ProcessHttpResponse(method_config, http_response, request))
File
"<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/container/venv/python/local/lib/python2.7/site-packages/apitools/base/py/base_api.py",>
line 620, in __ProcessHttpResponse
return self.__client.DeserializeMessage(response_type, content)
File
"<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/container/venv/python/local/lib/python2.7/site-packages/apitools/base/py/base_api.py",>
line 446, in DeserializeMessage
message = encoding.JsonToMessage(response_type, data)
File
"<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/container/venv/python/local/lib/python2.7/site-packages/apitools/base/py/encoding_helper.py",>
line 123, in JsonToMessage
return _ProtoJsonApiTools.Get().decode_message(message_type, message)
File
"<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/container/venv/python/local/lib/python2.7/site-packages/apitools/base/py/encoding_helper.py",>
line 309, in decode_message
message_type, result)
File
"<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/container/venv/python/local/lib/python2.7/site-packages/apitools/base/protorpclite/protojson.py",>
line 214, in decode_message
message = self.__decode_dictionary(message_type, dictionary)
File
"<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/container/venv/python/local/lib/python2.7/site-packages/apitools/base/protorpclite/protojson.py",>
line 287, in __decode_dictionary
for item in value]
File
"<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/container/venv/python/local/lib/python2.7/site-packages/apitools/base/py/encoding_helper.py",>
line 331, in decode_field
field.message_type, json.dumps(value))
File
"<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/container/venv/python/local/lib/python2.7/site-packages/apitools/base/py/encoding_helper.py",>
line 309, in decode_message
message_type, result)
File
"<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/container/venv/python/local/lib/python2.7/site-packages/apitools/base/protorpclite/protojson.py",>
line 214, in decode_message
message = self.__decode_dictionary(message_type, dictionary)
File
"<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/container/venv/python/local/lib/python2.7/site-packages/apitools/base/protorpclite/protojson.py",>
line 274, in __decode_dictionary
field = message.field_by_name(key)
File
"<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/container/venv/python/local/lib/python2.7/site-packages/apitools/base/protorpclite/messages.py",>
line 865, in field_by_name
return cls.__by_name[name]
File
"<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/container/venv/python/local/lib/python2.7/site-packages/nose/plugins/multiprocess.py",>
line 276, in signalhandler
raise TimedOutException()
TimedOutException: 'test_wordcount_fnapi_it
(apache_beam.examples.wordcount_it_test.WordCountIT)'
======================================================================
ERROR: test_metrics_fnapi_it
(apache_beam.runners.dataflow.dataflow_exercise_metrics_pipeline_test.ExerciseMetricsPipelineTest)
----------------------------------------------------------------------
Traceback (most recent call last):
File
"<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/container/venv/python/local/lib/python2.7/site-packages/nose/plugins/multiprocess.py",>
line 812, in run
test(orig)
File
"<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/container/venv/python/local/lib/python2.7/site-packages/nose/case.py",>
line 45, in __call__
return self.run(*arg, **kwarg)
File
"<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/container/venv/python/local/lib/python2.7/site-packages/nose/case.py",>
line 133, in run
self.runTest(result)
File
"<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/container/venv/python/local/lib/python2.7/site-packages/nose/case.py",>
line 151, in runTest
test(result)
File "/usr/lib/python2.7/unittest/case.py", line 393, in __call__
return self.run(*args, **kwds)
File "/usr/lib/python2.7/unittest/case.py", line 329, in run
testMethod()
File
"<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/apache_beam/runners/dataflow/dataflow_exercise_metrics_pipeline_test.py",>
line 57, in test_metrics_fnapi_it
result = self.run_pipeline(experiment='beam_fn_api')
File
"<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/apache_beam/runners/dataflow/dataflow_exercise_metrics_pipeline_test.py",>
line 38, in run_pipeline
test_pipeline = TestPipeline(is_integration_test=True)
File
"<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/apache_beam/testing/test_pipeline.py",>
line 107, in __init__
super(TestPipeline, self).__init__(runner, options)
File
"<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/apache_beam/pipeline.py",>
line 190, in __init__
errors = PipelineOptionsValidator(self._options, runner).validate()
File
"<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/apache_beam/options/pipeline_options_validator.py",>
line 121, in validate
errors.extend(self.options.view_as(cls).validate(self))
File
"<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/apache_beam/options/pipeline_options.py",>
line 619, in validate
self.view_as(GoogleCloudOptions).region = self._get_default_gcp_region()
File
"<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/apache_beam/options/pipeline_options.py",>
line 584, in _get_default_gcp_region
raw_output = processes.check_output(cmd, stderr=DEVNULL)
File
"<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/apache_beam/utils/processes.py",>
line 85, in check_output
out = subprocess.check_output(*args, **kwargs)
File "/usr/lib/python2.7/subprocess.py", line 568, in check_output
output, unused_err = process.communicate()
File "/usr/lib/python2.7/subprocess.py", line 792, in communicate
stdout = _eintr_retry_call(self.stdout.read)
File "/usr/lib/python2.7/subprocess.py", line 476, in _eintr_retry_call
return func(*args)
File
"<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/container/venv/python/local/lib/python2.7/site-packages/nose/plugins/multiprocess.py",>
line 276, in signalhandler
raise TimedOutException()
TimedOutException: 'test_metrics_fnapi_it
(apache_beam.runners.dataflow.dataflow_exercise_metrics_pipeline_test.ExerciseMetricsPipelineTest)'
----------------------------------------------------------------------
XML: nosetests-python2.7_sdk.xml
----------------------------------------------------------------------
XML:
<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/nosetests.xml>
----------------------------------------------------------------------
Ran 2 tests in 903.956s
FAILED (errors=2)
cleanup_container
Untagged: us.gcr.io/apache-beam-testing/jenkins/python2.7_sdk:20200208-180021
Untagged:
us.gcr.io/apache-beam-testing/jenkins/python2.7_sdk@sha256:bf210697588194ebc9ec9fd0a9ea1fe9d5d26f8f66ebd4a555080081705c55b4
Deleted: sha256:724374043d5a6a3f1369d23e5d937351e5a064c3613ce11542b5f7c09aa75b70
Deleted: sha256:9e54cf87c547d20a23688a98ab8678710a5c201b3b28f59aa0c94d0d955d4140
Deleted: sha256:2bf5c75c921d1159060192e4d21f104f0025c0c15f4d9900139172bd563daad2
Deleted: sha256:eea4237d09477076bb29ab692b3ceb46881dfef2c851b753c195f0a33fe9dbe8
Deleted: sha256:31f65762991ffbda68e381eccb15370f13959cbc682631287dadaea5eb77ee5d
Deleted: sha256:9cc53910938704ed96f4a205a5f3d53ac90c66ab3e8ee1ad948514aad696044d
Deleted: sha256:9b0c78b833f3cf6fd94759ce9f25dadc097b767ec82bd70857427619c4a6665d
Deleted: sha256:aa268f0a0e2147d8e69ed0213e4d1ea16278a22e13d935b73923f93f292d390e
Deleted: sha256:c5702c1dd74770d3659083e1ac9bd128b8842458b55344fff441797f2c4ff366
Deleted: sha256:2d82ece9ffd63b501ce4c03349f1b9af0c5b40d2556b39e9b3c9ccf92d78a5ea
Deleted: sha256:f35aaf799ff9d799cfd66142c504db232ce4f8bfb065ea6e0f18af0f912b304b
Deleted: sha256:17123fb2a8ea0193c71aa73b14127c9015600a5dbad68204a5b01559420af40e
Deleted: sha256:ab38956584a3500d70bd877947953d9aa01bf97da333788e5b58c15027c32ce8
Deleted: sha256:24ede8c09180e536126e0f53bbe58f1378b356ac0d444046036dd8fce18c75e0
Deleted: sha256:cdc814e5a2b0b66479126c58d4068dc7c7d3c96c50917ee742e92a056ad96470
Deleted: sha256:e5ad297662b515e5e36b36f54696b174af94c10bca5bbce5c5ba6bc18ae5b951
Deleted: sha256:f63c02f7c58182ef49acd2c3d5fe2a2e2f93d460313c5622d9d1ba9d9a2c46a1
Deleted: sha256:fd5ab4f49c57453db2817aa681bcb700b60bb2201b8446c204e511d0e187b1bd
Deleted: sha256:f5fe00a0fce6613067d2ac63dea8e81943ba608a415f64e631e21806b8b1c0d1
Deleted: sha256:c81d68697a6e6a18349f420641774d009a5c1d9e5c966dc4b32ef0199ba52ab8
Deleted: sha256:b57f7dfea46300b1aa5279f5d9fb1e3731efeda5aeb149a4f059e55d4b5bfd78
Deleted: sha256:69595a6e8895f629c8d40617f287b4d17992e55d2ec325a0a3520ac91321e188
Deleted: sha256:0c6f98e6d12c89fb1b3fa96033512c921feaea331aa785e55df9ab7f9a5d82b0
Deleted: sha256:b0ec24885280aafe280d0c0d8a4f5aa1aa8812093dcba45630fe1fcbc3afc5d2
Digests:
-
us.gcr.io/apache-beam-testing/jenkins/python2.7_sdk@sha256:bf210697588194ebc9ec9fd0a9ea1fe9d5d26f8f66ebd4a555080081705c55b4
Associated tags:
- 20200208-180021
Tags:
- us.gcr.io/apache-beam-testing/jenkins/python2.7_sdk:20200208-180021
Deleted [us.gcr.io/apache-beam-testing/jenkins/python2.7_sdk:20200208-180021].
Deleted
[us.gcr.io/apache-beam-testing/jenkins/python2.7_sdk@sha256:bf210697588194ebc9ec9fd0a9ea1fe9d5d26f8f66ebd4a555080081705c55b4].
Removed the container
Build step 'Execute shell' marked build as failure
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]