See
<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/5750/display/redirect?page=changes>
Changes:
[github] Update container image tags used by Dataflow runner for Beam master
------------------------------------------
[...truncated 745.34 KB...]
copying apache_beam/typehints/typed_pipeline_test_py3.py ->
apache-beam-2.21.0.dev0/apache_beam/typehints
copying apache_beam/typehints/typehints.py ->
apache-beam-2.21.0.dev0/apache_beam/typehints
copying apache_beam/typehints/typehints_test.py ->
apache-beam-2.21.0.dev0/apache_beam/typehints
copying apache_beam/typehints/typehints_test_py3.py ->
apache-beam-2.21.0.dev0/apache_beam/typehints
copying apache_beam/utils/__init__.py ->
apache-beam-2.21.0.dev0/apache_beam/utils
copying apache_beam/utils/annotations.py ->
apache-beam-2.21.0.dev0/apache_beam/utils
copying apache_beam/utils/annotations_test.py ->
apache-beam-2.21.0.dev0/apache_beam/utils
copying apache_beam/utils/counters.pxd ->
apache-beam-2.21.0.dev0/apache_beam/utils
copying apache_beam/utils/counters.py ->
apache-beam-2.21.0.dev0/apache_beam/utils
copying apache_beam/utils/counters_test.py ->
apache-beam-2.21.0.dev0/apache_beam/utils
copying apache_beam/utils/interactive_utils.py ->
apache-beam-2.21.0.dev0/apache_beam/utils
copying apache_beam/utils/plugin.py -> apache-beam-2.21.0.dev0/apache_beam/utils
copying apache_beam/utils/processes.py ->
apache-beam-2.21.0.dev0/apache_beam/utils
copying apache_beam/utils/processes_test.py ->
apache-beam-2.21.0.dev0/apache_beam/utils
copying apache_beam/utils/profiler.py ->
apache-beam-2.21.0.dev0/apache_beam/utils
copying apache_beam/utils/proto_utils.py ->
apache-beam-2.21.0.dev0/apache_beam/utils
copying apache_beam/utils/retry.py -> apache-beam-2.21.0.dev0/apache_beam/utils
copying apache_beam/utils/retry_test.py ->
apache-beam-2.21.0.dev0/apache_beam/utils
copying apache_beam/utils/subprocess_server.py ->
apache-beam-2.21.0.dev0/apache_beam/utils
copying apache_beam/utils/thread_pool_executor.py ->
apache-beam-2.21.0.dev0/apache_beam/utils
copying apache_beam/utils/thread_pool_executor_test.py ->
apache-beam-2.21.0.dev0/apache_beam/utils
copying apache_beam/utils/timestamp.py ->
apache-beam-2.21.0.dev0/apache_beam/utils
copying apache_beam/utils/timestamp_test.py ->
apache-beam-2.21.0.dev0/apache_beam/utils
copying apache_beam/utils/urns.py -> apache-beam-2.21.0.dev0/apache_beam/utils
copying apache_beam/utils/windowed_value.pxd ->
apache-beam-2.21.0.dev0/apache_beam/utils
copying apache_beam/utils/windowed_value.py ->
apache-beam-2.21.0.dev0/apache_beam/utils
copying apache_beam/utils/windowed_value_test.py ->
apache-beam-2.21.0.dev0/apache_beam/utils
Writing apache-beam-2.21.0.dev0/setup.cfg
creating dist
Creating tar archive
removing 'apache-beam-2.21.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:253: 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.21.0.dev' to '2.21.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>:241:
UserWarning: Installing grpcio-tools is recommended for development.
warnings.warn('Installing grpcio-tools is recommended for development.')
INFO:gen_protos: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. '
WARNING:apache_beam.io.gcp.datastore.v1.datastoreio:Using deprecated Datastore
client.
This client will be removed in Beam 3.0 (next Beam major release).
Please migrate to apache_beam.io.gcp.datastore.v1new.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 495, 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 508, 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 1578, 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 1516, 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 1469, 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 236, 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 795, 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 699, 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 215, in decode_message
message.check_initialized()
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 808, in check_initialized
value = getattr(self, name)
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 1296, in __get__
def __get__(self, message_instance, message_class):
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 196, 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 91, in check_output
out = subprocess.check_output(*args, **kwargs)
File "/usr/lib/python2.7/subprocess.py", line 567, in check_output
process = Popen(stdout=PIPE, *popenargs, **kwargs)
File "/usr/lib/python2.7/subprocess.py", line 711, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1235, in _execute_child
self.pid = os.fork()
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-beam_python2.7_sdk.xml
----------------------------------------------------------------------
XML:
<https://builds.apache.org/job/beam_PostCommit_Py_ValCont/ws/src/sdks/python/nosetests.xml>
----------------------------------------------------------------------
Ran 2 tests in 904.533s
FAILED (errors=2)
cleanup_container
Untagged:
us.gcr.io/apache-beam-testing/jenkins/beam_python2.7_sdk:20200305-030348
Untagged:
us.gcr.io/apache-beam-testing/jenkins/beam_python2.7_sdk@sha256:2e72a8ace710b6d8ae8c0296a11e8c74b29db7f04f9c047e376ebcbda9671a4d
Deleted: sha256:7cdaaf3070d01a3f54c50deabd9ce37b55f0b43b31d5e7d8ff90526b2de159b8
Deleted: sha256:304a3e8a102f354aeb159c65ed282a72a9185f6644b4faeede43fa53e87777d8
Deleted: sha256:c5750e72bea78df95cd85628d2e6aa91d309a68eeb2b7bee7d39d48f7913bfc1
Deleted: sha256:a52a0fd77b2a1011c193400d75f3447d8304fe577752cfa4b25d3aef65f1a964
Deleted: sha256:91a0ed2b8a5b64b2ac4b4399296a0800184be3d0746be37b2d455155c70c1b0b
Deleted: sha256:e2b493796d834ac6cf98462a1c1dcf86e0f904b0ad4e4b418d78b961d351f494
Deleted: sha256:f4eab58a835085915763f25671475d97ba64ea27194f5f44372ec26a3b088f4b
Deleted: sha256:29c0454515935c78aafeecf475781ffc4de4b5318fde90f869825f4e56acaf28
Deleted: sha256:ea987dd2539d11b2ea90fc0113ef1cead2eda8b7cc45943b03c6e1b59c22d12a
Deleted: sha256:487f03a6f32d354702652177b0b67cc510da54772b40d28bbdb1099ef61a5656
Deleted: sha256:a53f68a4fb5aaba18e8e39066aaec197301994accd40ebadfc267195828a7e3d
Deleted: sha256:681d541af3f0bf9685ad40f4ed1132ee0f9c8212fffe384df46012a939105074
Deleted: sha256:6532db6cd041441dafa8c6715b8dbd91428b08b551a7b891d58a7ebd03dbc103
Deleted: sha256:895537f4dd7674b276a533041c25908cbef52749f9b18266bdf01be9856c6073
Deleted: sha256:04fadbdd2eca372bd170e908f862fc36fdbf0a1cd4d9551bbf43bedc1f372fe5
Deleted: sha256:0f2aac6f00c74a848f632a75a52d21c99b63ffa2d663ad0754588f2112bd1532
Deleted: sha256:f78ba5e1d7f9ffb475c43dba9a5df2afa3ab7789323d3c711fab0734c92db432
Deleted: sha256:ad2458362fb51d1700d58e353ffbec805425b8e176b70dab02323d10b96a618c
Deleted: sha256:cb997d1a79258c767c332dc7b109da681a5b5b4b5f66e7ada520ca4a400299c3
Deleted: sha256:5b5f80a6f4f1b4e2c4becf2e942324da3e0656569010aafe821a69f58687599f
Deleted: sha256:be69bfcdca7584c11c60748c2e7a969525df23827e4c0f5ed8f361eca0a2ec30
Deleted: sha256:232c7b2d50f23ea112bd5107db83d632a85234b7e00f014320d1dcfd5f5b7acd
Deleted: sha256:7882164e748f0119c70b4eca658babeeb54d951252e6add7da61931687405fb1
Deleted: sha256:1baf75c55b903a5ef2cc74e731d5a08caa15641c73631c34cc8441131b37315a
Digests:
-
us.gcr.io/apache-beam-testing/jenkins/beam_python2.7_sdk@sha256:2e72a8ace710b6d8ae8c0296a11e8c74b29db7f04f9c047e376ebcbda9671a4d
Associated tags:
- 20200305-030348
Tags:
- us.gcr.io/apache-beam-testing/jenkins/beam_python2.7_sdk:20200305-030348
Deleted
[us.gcr.io/apache-beam-testing/jenkins/beam_python2.7_sdk:20200305-030348].
Deleted
[us.gcr.io/apache-beam-testing/jenkins/beam_python2.7_sdk@sha256:2e72a8ace710b6d8ae8c0296a11e8c74b29db7f04f9c047e376ebcbda9671a4d].
Removed the container
Build step 'Execute shell' marked build as failure
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]