------------------------------------------------------------------------------- Test set: org.dataone.integration.it.apiTests.MNStorageV2IT ------------------------------------------------------------------------------- Tests run: 72, Failures: 64, Errors: 0, Skipped: 2, Time elapsed: 603.961 sec <<< FAILURE! testCreateData_IdentifierEncoding(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 294.668 sec <<< FAILURE! java.lang.AssertionError: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 21:57:28 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'testMNodeTier3:201836135727904_common-unicode-ascii-safe-ABCDEFGHIJKLMNOPQRSTUVWXYZ' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.4328154089501780466.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.4258369270226955832.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '686071' CONTENT_TYPE 'multipart/form-data; boundary=WMXRES24V-rM7SCk669Pjml8NhJDUKiH' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '40956' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517867848352154' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517867848351838' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517867848351422' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517867848352199' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53fadd9738> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53faca1ef0> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host POST https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object; MMP message has: ParamPart:pid = testMNodeTier3:201836135727904_common-unicode-ascii-safe-ABCDEFGHIJKLMNOPQRSTUVWXYZ; FilePart:object = /tmp/mmp.output.4258369270226955832.tmp (684336 bytes); FilePart:sysmeta = /tmp/mmp.output.4328154089501780466.tmp (1037 bytes); ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:253) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:153) at org.dataone.integration.it.apiTests.MNStorageV2IT.testCreateData_IdentifierEncoding(MNStorageV2IT.java:77) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testCreateData_IdentifierEncoding(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 294.67 sec <<< FAILURE! java.lang.AssertionError: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 21:57:29 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'testMNodeTier3:201836135729132_common-unicode-ascii-safe-abcdefghijklmnopqrstuvwxyz' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.6226310841784983637.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.6319615630210090049.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '686095' CONTENT_TYPE 'multipart/form-data; boundary=5i7JxcD1SLFTai2JH2ZrkEMbGF2cXwr1FDvpvn' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '40958' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517867849283591' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517867849283333' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517867849283015' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517867849283655' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53fab30c48> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fae0e1b0> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host POST https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object; MMP message has: ParamPart:pid = testMNodeTier3:201836135729132_common-unicode-ascii-safe-abcdefghijklmnopqrstuvwxyz; FilePart:object = /tmp/mmp.output.6319615630210090049.tmp (684336 bytes); FilePart:sysmeta = /tmp/mmp.output.6226310841784983637.tmp (1037 bytes); ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:253) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:153) at org.dataone.integration.it.apiTests.MNStorageV2IT.testCreateData_IdentifierEncoding(MNStorageV2IT.java:77) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testCreateData_IdentifierEncoding(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 294.671 sec <<< FAILURE! java.lang.AssertionError: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 21:57:30 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'testMNodeTier3:201836135729966_common-unicode-ascii-safe-0123456789' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.1400538805032084443.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.2862273862199615782.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '686043' CONTENT_TYPE 'multipart/form-data; boundary=NcfK5BBcMMQr1f0jgvtU9xHi3zFxwh2tL' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '40960' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517867850117640' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517867850117325' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517867850116952' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517867850117699' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53fad94c48> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fac44e70> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host POST https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object; MMP message has: ParamPart:pid = testMNodeTier3:201836135729966_common-unicode-ascii-safe-0123456789; FilePart:object = /tmp/mmp.output.2862273862199615782.tmp (684336 bytes); FilePart:sysmeta = /tmp/mmp.output.1400538805032084443.tmp (1021 bytes); ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:253) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:153) at org.dataone.integration.it.apiTests.MNStorageV2IT.testCreateData_IdentifierEncoding(MNStorageV2IT.java:77) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testCreateData_IdentifierEncoding(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 294.672 sec <<< FAILURE! java.lang.AssertionError: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 21:57:31 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u"testMNodeTier3:201836135730794_common-unicode-ascii-safe-:@$-_.!*()',~" FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.1288630107465280154.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.1654343894085641545.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '686061' CONTENT_TYPE 'multipart/form-data; boundary=rxqWWKl2sdZkWvsT1JkQDZQR3EO0L3vSYSU3' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '40962' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517867850941703' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517867850941422' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517867850941073' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517867850941755' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53fb050780> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fabf4930> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host POST https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object; MMP message has: ParamPart:pid = testMNodeTier3:201836135730794_common-unicode-ascii-safe-:@$-_.!*()',~; FilePart:object = /tmp/mmp.output.1654343894085641545.tmp (684336 bytes); FilePart:sysmeta = /tmp/mmp.output.1288630107465280154.tmp (1024 bytes); ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:253) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:153) at org.dataone.integration.it.apiTests.MNStorageV2IT.testCreateData_IdentifierEncoding(MNStorageV2IT.java:77) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testCreateData_IdentifierEncoding(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 294.673 sec <<< FAILURE! java.lang.AssertionError: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 21:57:32 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'testMNodeTier3:201836135731677_common-unicode-ascii-safe-unreserved-._~' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.5443209168669140928.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.1943472579544478147.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '686051' CONTENT_TYPE 'multipart/form-data; boundary=wGOwmNKSqS6ZK46tC5Gcos-OhHq19dbqw' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '40963' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517867851822074' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517867851821819' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517867851821505' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517867851822116' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f54010ff2b8> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fad4bab0> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host POST https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object; MMP message has: ParamPart:pid = testMNodeTier3:201836135731677_common-unicode-ascii-safe-unreserved-._~; FilePart:object = /tmp/mmp.output.1943472579544478147.tmp (684336 bytes); FilePart:sysmeta = /tmp/mmp.output.5443209168669140928.tmp (1025 bytes); ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:253) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:153) at org.dataone.integration.it.apiTests.MNStorageV2IT.testCreateData_IdentifierEncoding(MNStorageV2IT.java:77) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testCreateData_IdentifierEncoding(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 294.674 sec <<< FAILURE! java.lang.AssertionError: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 21:57:33 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u"testMNodeTier3:201836135732559_common-unicode-ascii-safe-sub-delims-$!*()'," FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.5692531764243880031.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.6478239521398428146.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '686063' CONTENT_TYPE 'multipart/form-data; boundary=NxLixemt5Tf3LXs702qfTVOd0b60914efH' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '40965' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517867852706335' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517867852705971' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517867852705604' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517867852706395' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53fad1a4f8> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fac22d30> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host POST https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object; MMP message has: ParamPart:pid = testMNodeTier3:201836135732559_common-unicode-ascii-safe-sub-delims-$!*()',; FilePart:object = /tmp/mmp.output.6478239521398428146.tmp (684336 bytes); FilePart:sysmeta = /tmp/mmp.output.5692531764243880031.tmp (1029 bytes); ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:253) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:153) at org.dataone.integration.it.apiTests.MNStorageV2IT.testCreateData_IdentifierEncoding(MNStorageV2IT.java:77) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testCreateData_IdentifierEncoding(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 294.676 sec <<< FAILURE! java.lang.AssertionError: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 21:57:33 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'testMNodeTier3:201836135733439_common-unicode-ascii-safe-gen-delims-:@' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.6056436699313243374.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.3540857796879590489.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '686045' CONTENT_TYPE 'multipart/form-data; boundary=C5iEiWp0CHNZPgfCQ8xRaT7N6lNfaq57' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '40968' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517867853585084' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517867853584795' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517867853584482' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517867853585140' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53fac88f18> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fac44530> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host POST https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object; MMP message has: ParamPart:pid = testMNodeTier3:201836135733439_common-unicode-ascii-safe-gen-delims-:@; FilePart:object = /tmp/mmp.output.3540857796879590489.tmp (684336 bytes); FilePart:sysmeta = /tmp/mmp.output.6056436699313243374.tmp (1024 bytes); ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:253) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:153) at org.dataone.integration.it.apiTests.MNStorageV2IT.testCreateData_IdentifierEncoding(MNStorageV2IT.java:77) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testCreateData_IdentifierEncoding(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 294.676 sec <<< FAILURE! java.lang.AssertionError: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 21:57:35 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'testMNodeTier3:201836135734316_common-unicode-ascii-escaped-%22%23%3C%3E%5B%5D%5E%60%7B%7D%7C' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.1394232861184356606.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.734926927663257304.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '686094' CONTENT_TYPE 'multipart/form-data; boundary=kOHWaL6W-WaDNuFECHpcZfJaJwTGBjkTC' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '40970' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517867854461196' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517867854460920' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517867854460569' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517867854461316' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53facd4858> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fac7b170> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host POST https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object; MMP message has: ParamPart:pid = testMNodeTier3:201836135734316_common-unicode-ascii-escaped-%22%23%3C%3E%5B%5D%5E%60%7B%7D%7C; FilePart:object = /tmp/mmp.output.734926927663257304.tmp (684336 bytes); FilePart:sysmeta = /tmp/mmp.output.1394232861184356606.tmp (1047 bytes); ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:253) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:153) at org.dataone.integration.it.apiTests.MNStorageV2IT.testCreateData_IdentifierEncoding(MNStorageV2IT.java:77) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testCreateData_IdentifierEncoding(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 294.677 sec <<< FAILURE! java.lang.AssertionError: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 21:57:36 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'testMNodeTier3:201836135735633_common-unicode-ascii-escaped-tomcatBlocked-%5C' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.7066757662246707575.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.3422379335601495516.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '686063' CONTENT_TYPE 'multipart/form-data; boundary=VHuIcusjJIWsgrvkSsinTFsF4MPejSVRR' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '40972' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517867855779249' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517867855779011' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517867855778669' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517867855779303' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f5400132270> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fab8a8f0> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host POST https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object; MMP message has: ParamPart:pid = testMNodeTier3:201836135735633_common-unicode-ascii-escaped-tomcatBlocked-%5C; FilePart:object = /tmp/mmp.output.3422379335601495516.tmp (684336 bytes); FilePart:sysmeta = /tmp/mmp.output.7066757662246707575.tmp (1031 bytes); ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:253) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:153) at org.dataone.integration.it.apiTests.MNStorageV2IT.testCreateData_IdentifierEncoding(MNStorageV2IT.java:77) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testCreateData_IdentifierEncoding(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 294.678 sec <<< FAILURE! java.lang.AssertionError: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 21:57:37 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'testMNodeTier3:201836135736507_common-unicode-ascii-escaped-tomcatBlocked-%255C' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.1432808594749177476.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.7407804464317843637.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '686091' CONTENT_TYPE 'multipart/form-data; boundary=6dbHnV5IEZ86Qh5kBSvSY7JMYwcOKi-pb-nOzA-' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '40973' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517867856655317' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517867856655049' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517867856654706' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517867856655373' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53fad94c48> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fabd80b0> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host POST https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object; MMP message has: ParamPart:pid = testMNodeTier3:201836135736507_common-unicode-ascii-escaped-tomcatBlocked-%255C; FilePart:object = /tmp/mmp.output.7407804464317843637.tmp (684336 bytes); FilePart:sysmeta = /tmp/mmp.output.1432808594749177476.tmp (1033 bytes); ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:253) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:153) at org.dataone.integration.it.apiTests.MNStorageV2IT.testCreateData_IdentifierEncoding(MNStorageV2IT.java:77) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testCreateData_IdentifierEncoding(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 294.679 sec <<< FAILURE! java.lang.AssertionError: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 21:57:37 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'testMNodeTier3:201836135737439_common-unicode-ascii-semi-colon-test-%253B' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.943854416505485553.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.4447658830228704667.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '686058' CONTENT_TYPE 'multipart/form-data; boundary=oHuOBHyti_fjj-qrneUjZnjpYC88AeHzuN' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '40975' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517867857585859' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517867857585610' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517867857585269' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517867857585910' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53fae00f60> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fad53c30> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host POST https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object; MMP message has: ParamPart:pid = testMNodeTier3:201836135737439_common-unicode-ascii-semi-colon-test-%253B; FilePart:object = /tmp/mmp.output.4447658830228704667.tmp (684336 bytes); FilePart:sysmeta = /tmp/mmp.output.943854416505485553.tmp (1027 bytes); ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:253) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:153) at org.dataone.integration.it.apiTests.MNStorageV2IT.testCreateData_IdentifierEncoding(MNStorageV2IT.java:77) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testCreateData_IdentifierEncoding(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 294.679 sec <<< FAILURE! java.lang.AssertionError: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 21:57:38 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'testMNodeTier3:201836135738264_common-unicode-ascii-escaped-%25' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.4766765791500364750.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.6432164243441805467.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '686051' CONTENT_TYPE 'multipart/form-data; boundary=z6ma0QgtwdtdC37y5n5Wblv7OYgDlLEwrsG1d' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '40976' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517867858410996' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517867858410708' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517867858410364' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517867858411091' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53fb9d6b70> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fab85330> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host POST https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object; MMP message has: ParamPart:pid = testMNodeTier3:201836135738264_common-unicode-ascii-escaped-%25; FilePart:object = /tmp/mmp.output.6432164243441805467.tmp (684336 bytes); FilePart:sysmeta = /tmp/mmp.output.4766765791500364750.tmp (1017 bytes); ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:253) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:153) at org.dataone.integration.it.apiTests.MNStorageV2IT.testCreateData_IdentifierEncoding(MNStorageV2IT.java:77) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testCreateData_IdentifierEncoding(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 294.68 sec <<< FAILURE! java.lang.AssertionError: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 21:57:39 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'testMNodeTier3:201836135739148_common-unicode-ascii-escaped-space%20x%20x' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.6385827192444540992.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.8521223332008450923.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '686047' CONTENT_TYPE 'multipart/form-data; boundary=E1Fhwzq_v_lCLHMJz1vPQbR9YB7dFT1' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '40979' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517867859293299' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517867859293006' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517867859292672' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517867859293352' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53fb0cd810> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fad78c70> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host POST https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object; MMP message has: ParamPart:pid = testMNodeTier3:201836135739148_common-unicode-ascii-escaped-space%20x%20x; FilePart:object = /tmp/mmp.output.8521223332008450923.tmp (684336 bytes); FilePart:sysmeta = /tmp/mmp.output.6385827192444540992.tmp (1027 bytes); ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:253) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:153) at org.dataone.integration.it.apiTests.MNStorageV2IT.testCreateData_IdentifierEncoding(MNStorageV2IT.java:77) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testCreateData_IdentifierEncoding(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 294.681 sec <<< FAILURE! java.lang.AssertionError: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 21:57:40 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'testMNodeTier3:20183613574027_common-unicode-ascii-escape-anyway-%2B' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.5513353017122120738.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.123598933965797689.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '686040' CONTENT_TYPE 'multipart/form-data; boundary=muzlTcYc81yRrhW1bJWVk-KXF1CWpHJU' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '40980' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517867860174188' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517867860173869' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517867860173538' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517867860174248' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53fb050780> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fb1147f0> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host POST https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object; MMP message has: ParamPart:pid = testMNodeTier3:20183613574027_common-unicode-ascii-escape-anyway-%2B; FilePart:object = /tmp/mmp.output.123598933965797689.tmp (684336 bytes); FilePart:sysmeta = /tmp/mmp.output.5513353017122120738.tmp (1022 bytes); ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:253) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:153) at org.dataone.integration.it.apiTests.MNStorageV2IT.testCreateData_IdentifierEncoding(MNStorageV2IT.java:77) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testCreateData_IdentifierEncoding(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 294.682 sec <<< FAILURE! java.lang.AssertionError: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 21:57:41 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'testMNodeTier3:201836135740911_common-unicode-ascii-escape-space-v-plus-%2B%20%2B%2520%20%2520%2B' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.8294492101150899734.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.7824155767647803041.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '686091' CONTENT_TYPE 'multipart/form-data; boundary=jCw2rexcyvt_PXobKDJ3XDJOJFKUhK' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '41001' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517867861060418' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517867861060167' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517867861059822' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517867861060461' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53fad0c2b8> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fac842b0> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host POST https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object; MMP message has: ParamPart:pid = testMNodeTier3:201836135740911_common-unicode-ascii-escape-space-v-plus-%2B%20%2B%2520%20%2520%2B; FilePart:object = /tmp/mmp.output.7824155767647803041.tmp (684336 bytes); FilePart:sysmeta = /tmp/mmp.output.8294492101150899734.tmp (1051 bytes); ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:253) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:153) at org.dataone.integration.it.apiTests.MNStorageV2IT.testCreateData_IdentifierEncoding(MNStorageV2IT.java:77) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testCreateData_IdentifierEncoding(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 294.682 sec <<< FAILURE! java.lang.AssertionError: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 21:57:42 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'testMNodeTier3:201836135741795_path-unicode-ascii-safe-&=&=' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.4004877457492554694.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.5830188712785148773.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '686031' CONTENT_TYPE 'multipart/form-data; boundary=lHaaGAdpscrNI-nCZVjSqZv7rCu-xgqO' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '41005' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517867861941626' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517867861941342' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517867861941022' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517867861941682' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53fac49f18> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fad63ef0> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host POST https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object; MMP message has: ParamPart:pid = testMNodeTier3:201836135741795_path-unicode-ascii-safe-&=&=; FilePart:object = /tmp/mmp.output.5830188712785148773.tmp (684336 bytes); FilePart:sysmeta = /tmp/mmp.output.4004877457492554694.tmp (1021 bytes); ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:253) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:153) at org.dataone.integration.it.apiTests.MNStorageV2IT.testCreateData_IdentifierEncoding(MNStorageV2IT.java:77) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testCreateData_IdentifierEncoding(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 294.683 sec <<< FAILURE! java.lang.AssertionError: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 21:57:43 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'testMNodeTier3:201836135742680_path-unicode-ascii-escaped-%3B' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.4006846613196601498.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.1351961991750981609.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '686019' CONTENT_TYPE 'multipart/form-data; boundary=JTh0AfCaO5Ve8S_wc6PwWdxveHtFU4' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '41007' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517867862826190' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517867862825962' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517867862825624' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517867862826240' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f54091658a0> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f5416f95230> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host POST https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object; MMP message has: ParamPart:pid = testMNodeTier3:201836135742680_path-unicode-ascii-escaped-%3B; FilePart:object = /tmp/mmp.output.1351961991750981609.tmp (684336 bytes); FilePart:sysmeta = /tmp/mmp.output.4006846613196601498.tmp (1015 bytes); ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:253) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:153) at org.dataone.integration.it.apiTests.MNStorageV2IT.testCreateData_IdentifierEncoding(MNStorageV2IT.java:77) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testCreateData_IdentifierEncoding(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 294.684 sec <<< FAILURE! java.lang.AssertionError: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 21:57:44 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'testMNodeTier3:201836135743619_path-unicode-ascii-escaped-%3F' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.8848006462063453348.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.2722731137517222158.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '686019' CONTENT_TYPE 'multipart/form-data; boundary=2NwbBqxICKOWZMb5sd7Z411LxnQic9' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '41008' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517867863764818' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517867863764535' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517867863764204' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517867863764869' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f5403f77588> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f5408c8f0f0> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host POST https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object; MMP message has: ParamPart:pid = testMNodeTier3:201836135743619_path-unicode-ascii-escaped-%3F; FilePart:object = /tmp/mmp.output.2722731137517222158.tmp (684336 bytes); FilePart:sysmeta = /tmp/mmp.output.8848006462063453348.tmp (1015 bytes); ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:253) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:153) at org.dataone.integration.it.apiTests.MNStorageV2IT.testCreateData_IdentifierEncoding(MNStorageV2IT.java:77) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testCreateData_IdentifierEncoding(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 294.685 sec <<< FAILURE! java.lang.AssertionError: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 21:57:45 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'testMNodeTier3:201836135744509_path-unicode-ascii-escaped-%2F' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.269765357371205754.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.7607710217212226770.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '686038' CONTENT_TYPE 'multipart/form-data; boundary=en9mkhj92lngPqyjxOlTgihoSTV7xLOqyGo' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '41009' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517867864654964' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517867864654726' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517867864654375' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517867864655015' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f5403f2c588> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fad4bd70> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host POST https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object; MMP message has: ParamPart:pid = testMNodeTier3:201836135744509_path-unicode-ascii-escaped-%2F; FilePart:object = /tmp/mmp.output.7607710217212226770.tmp (684336 bytes); FilePart:sysmeta = /tmp/mmp.output.269765357371205754.tmp (1015 bytes); ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:253) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:153) at org.dataone.integration.it.apiTests.MNStorageV2IT.testCreateData_IdentifierEncoding(MNStorageV2IT.java:77) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testCreateData_IdentifierEncoding(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 294.686 sec <<< FAILURE! java.lang.AssertionError: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 21:57:45 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'testMNodeTier3:201836135745396_path-unicode-ascii-escaped-%253F' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.2985267060720539824.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.917481004295768677.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '686026' CONTENT_TYPE 'multipart/form-data; boundary=xHo9P_w2v1HnW3wr0STVEJd4MdswA3j' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '41011' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517867865542004' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517867865541761' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517867865541437' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517867865542059' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53fabc6b70> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fac5cdf0> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host POST https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object; MMP message has: ParamPart:pid = testMNodeTier3:201836135745396_path-unicode-ascii-escaped-%253F; FilePart:object = /tmp/mmp.output.917481004295768677.tmp (684336 bytes); FilePart:sysmeta = /tmp/mmp.output.2985267060720539824.tmp (1017 bytes); ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:253) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:153) at org.dataone.integration.it.apiTests.MNStorageV2IT.testCreateData_IdentifierEncoding(MNStorageV2IT.java:77) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testCreateData_IdentifierEncoding(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 294.687 sec <<< FAILURE! java.lang.AssertionError: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 21:57:46 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'testMNodeTier3:201836135746327_path-unicode-ascii-escaped-%252F' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.7944577273748897239.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.7784673035867331339.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '686023' CONTENT_TYPE 'multipart/form-data; boundary=xaZaJwql0VkVy9GehnmzY9cV_t3PEZ' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '41013' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517867866472258' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517867866471966' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517867866471604' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517867866472306' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f541700b1e0> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fac80a30> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host POST https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object; MMP message has: ParamPart:pid = testMNodeTier3:201836135746327_path-unicode-ascii-escaped-%252F; FilePart:object = /tmp/mmp.output.7784673035867331339.tmp (684336 bytes); FilePart:sysmeta = /tmp/mmp.output.7944577273748897239.tmp (1017 bytes); ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:253) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:153) at org.dataone.integration.it.apiTests.MNStorageV2IT.testCreateData_IdentifierEncoding(MNStorageV2IT.java:77) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testCreateData_IdentifierEncoding(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 294.688 sec <<< FAILURE! java.lang.AssertionError: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 21:57:47 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'testMNodeTier3:201836135747206_path-unicode-ascii-escaped-double-%2F%2Fcase' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.6941300843097897980.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.4628842800339790235.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '686087' CONTENT_TYPE 'multipart/form-data; boundary=hWCEZL834muJoe2B9S7Nzo_fPKONNC-17G0Or1rp' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '41014' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517867867352174' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517867867351935' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517867867351592' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517867867352227' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f5408d2dd68> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fb03acf0> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host POST https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object; MMP message has: ParamPart:pid = testMNodeTier3:201836135747206_path-unicode-ascii-escaped-double-%2F%2Fcase; FilePart:object = /tmp/mmp.output.4628842800339790235.tmp (684336 bytes); FilePart:sysmeta = /tmp/mmp.output.6941300843097897980.tmp (1029 bytes); ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:253) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:153) at org.dataone.integration.it.apiTests.MNStorageV2IT.testCreateData_IdentifierEncoding(MNStorageV2IT.java:77) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testCreateData_IdentifierEncoding(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 294.689 sec <<< FAILURE! java.lang.AssertionError: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 21:57:48 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'testMNodeTier3:20183613574885_path-unicode-ascii-escaped-double-trailing%2F%2F' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.5154901251653757775.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.6654618192343970447.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '686085' CONTENT_TYPE 'multipart/form-data; boundary=c9Jy4nUQjkaW_FvQIvJ_3NJuN-9yx2gABI2iFK' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '41015' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517867868234467' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517867868234128' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517867868233791' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517867868234527' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f54010cdf18> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fad8b470> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host POST https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object; MMP message has: ParamPart:pid = testMNodeTier3:20183613574885_path-unicode-ascii-escaped-double-trailing%2F%2F; FilePart:object = /tmp/mmp.output.6654618192343970447.tmp (684336 bytes); FilePart:sysmeta = /tmp/mmp.output.5154901251653757775.tmp (1032 bytes); ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:253) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:153) at org.dataone.integration.it.apiTests.MNStorageV2IT.testCreateData_IdentifierEncoding(MNStorageV2IT.java:77) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testCreateData_IdentifierEncoding(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 294.69 sec <<< FAILURE! java.lang.AssertionError: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 21:57:49 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'testMNodeTier3:20183613574915_path-unicode-ascii-escaped-double-%252F%252Fcase' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.7842563546342514145.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.5328065881774750113.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '686073' CONTENT_TYPE 'multipart/form-data; boundary=aKpQMNVQBqGTbyhA5EcCcWuBmRd99LQIKev' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '41017' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517867869160090' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517867869159855' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517867869159512' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517867869160131' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f54010cd4f8> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fae0e830> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host POST https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object; MMP message has: ParamPart:pid = testMNodeTier3:20183613574915_path-unicode-ascii-escaped-double-%252F%252Fcase; FilePart:object = /tmp/mmp.output.5328065881774750113.tmp (684336 bytes); FilePart:sysmeta = /tmp/mmp.output.7842563546342514145.tmp (1032 bytes); ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:253) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:153) at org.dataone.integration.it.apiTests.MNStorageV2IT.testCreateData_IdentifierEncoding(MNStorageV2IT.java:77) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testCreateData_IdentifierEncoding(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 294.692 sec <<< FAILURE! java.lang.AssertionError: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 21:57:50 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'testMNodeTier3:201836135749893_path-unicode-ascii-escaped-double-trailing%252F%252F' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.5327631648511166754.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.3059286925843301710.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '686095' CONTENT_TYPE 'multipart/form-data; boundary=wPbmb3T1eirVVSAriznqKn2qiJspX4_wb-8xB5' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '41018' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517867870040486' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517867870040196' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517867870039846' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517867870040546' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f540915da08> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fadb3070> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host POST https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object; MMP message has: ParamPart:pid = testMNodeTier3:201836135749893_path-unicode-ascii-escaped-double-trailing%252F%252F; FilePart:object = /tmp/mmp.output.3059286925843301710.tmp (684336 bytes); FilePart:sysmeta = /tmp/mmp.output.5327631648511166754.tmp (1037 bytes); ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:253) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:153) at org.dataone.integration.it.apiTests.MNStorageV2IT.testCreateData_IdentifierEncoding(MNStorageV2IT.java:77) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testCreateData_IdentifierEncoding(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 294.693 sec <<< FAILURE! java.lang.AssertionError: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 21:57:51 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'testMNodeTier3:201836135750764_common-unicode-bmp-1byte-escaped-%C2%A1%C2%A2%C2%A3' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.283327043868269786.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.1584294999255931915.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '686068' CONTENT_TYPE 'multipart/form-data; boundary=CVkd6RK-rkCMprJXxOBH0zEWFZQyddVV' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '41021' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517867870911328' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517867870911032' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517867870910682' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517867870911390' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f5403f15930> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fabd3870> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host POST https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object; MMP message has: ParamPart:pid = testMNodeTier3:201836135750764_common-unicode-bmp-1byte-escaped-%C2%A1%C2%A2%C2%A3; FilePart:object = /tmp/mmp.output.1584294999255931915.tmp (684336 bytes); FilePart:sysmeta = /tmp/mmp.output.283327043868269786.tmp (1036 bytes); ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:253) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:153) at org.dataone.integration.it.apiTests.MNStorageV2IT.testCreateData_IdentifierEncoding(MNStorageV2IT.java:77) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testCreateData_IdentifierEncoding(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 294.693 sec <<< FAILURE! java.lang.AssertionError: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 21:57:52 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'testMNodeTier3:201836135751584_common-unicode-bmp-2byte-escaped-%E4%A6%B9%E4%A6%BA' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.6026670154757198082.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.1960256609849790510.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '686089' CONTENT_TYPE 'multipart/form-data; boundary=3_z5pOJeulpy35w5-8WALlxNpaJM0twDB2Jwx' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '41022' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517867871729839' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517867871729601' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517867871729264' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517867871729882' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53fac53e88> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fac2a470> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host POST https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object; MMP message has: ParamPart:pid = testMNodeTier3:201836135751584_common-unicode-bmp-2byte-escaped-%E4%A6%B9%E4%A6%BA; FilePart:object = /tmp/mmp.output.1960256609849790510.tmp (684336 bytes); FilePart:sysmeta = /tmp/mmp.output.6026670154757198082.tmp (1036 bytes); ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:253) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:153) at org.dataone.integration.it.apiTests.MNStorageV2IT.testCreateData_IdentifierEncoding(MNStorageV2IT.java:77) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testCreateData_IdentifierEncoding(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 294.694 sec <<< FAILURE! java.lang.AssertionError: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 21:57:53 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'testMNodeTier3:201836135752456_common-ascii-doc-example-urn:lsid:ubio.org:namebank:11815' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.2492032217151945078.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.7194875161791716037.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '686105' CONTENT_TYPE 'multipart/form-data; boundary=kW7qdDrMI9rKF__LQ-dD9KdfkSCxPKysLrwkGg' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '41024' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517867872602978' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517867872602727' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517867872602378' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517867872603038' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53fb75f228> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fad2c7f0> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host POST https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object; MMP message has: ParamPart:pid = testMNodeTier3:201836135752456_common-ascii-doc-example-urn:lsid:ubio.org:namebank:11815; FilePart:object = /tmp/mmp.output.7194875161791716037.tmp (684336 bytes); FilePart:sysmeta = /tmp/mmp.output.2492032217151945078.tmp (1042 bytes); ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:253) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:153) at org.dataone.integration.it.apiTests.MNStorageV2IT.testCreateData_IdentifierEncoding(MNStorageV2IT.java:77) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testCreateData_IdentifierEncoding(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 294.695 sec <<< FAILURE! java.lang.AssertionError: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 21:57:53 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'testMNodeTier3:201836135753392_path-ascii-doc-example-10.1000%2F182' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.4892543799083258804.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.5797503638355122941.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '686047' CONTENT_TYPE 'multipart/form-data; boundary=N-FCEhej3mNe6iEZFliTDuV9Zzy_2vH_AA' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '41025' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517867873540688' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517867873540415' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517867873540080' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517867873540745' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f54091658a0> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fad789f0> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host POST https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object; MMP message has: ParamPart:pid = testMNodeTier3:201836135753392_path-ascii-doc-example-10.1000%2F182; FilePart:object = /tmp/mmp.output.5797503638355122941.tmp (684336 bytes); FilePart:sysmeta = /tmp/mmp.output.4892543799083258804.tmp (1021 bytes); ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:253) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:153) at org.dataone.integration.it.apiTests.MNStorageV2IT.testCreateData_IdentifierEncoding(MNStorageV2IT.java:77) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testCreateData_IdentifierEncoding(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 294.695 sec <<< FAILURE! java.lang.AssertionError: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 21:57:54 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'testMNodeTier3:201836135754276_path-ascii-doc-example-http:%2F%2Fexample.com%2Fdata%2Fmydata%3Frow=24' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.4368064332915084249.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.7599877557258527208.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '686123' CONTENT_TYPE 'multipart/form-data; boundary=aNiy-CA782JdMNXOdcApPEiYWYYVtB3csXl6' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '41026' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517867874422931' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517867874422639' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517867874422249' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517867874422992' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53fac53d68> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fad63830> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host POST https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object; MMP message has: ParamPart:pid = testMNodeTier3:201836135754276_path-ascii-doc-example-http:%2F%2Fexample.com%2Fdata%2Fmydata%3Frow=24; FilePart:object = /tmp/mmp.output.7599877557258527208.tmp (684336 bytes); FilePart:sysmeta = /tmp/mmp.output.4368064332915084249.tmp (1055 bytes); ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:253) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:153) at org.dataone.integration.it.apiTests.MNStorageV2IT.testCreateData_IdentifierEncoding(MNStorageV2IT.java:77) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testCreateData_IdentifierEncoding(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 294.705 sec <<< FAILURE! java.lang.AssertionError: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 21:57:55 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'testMNodeTier3:201836135755153_path-ascii-doc-example-ldap:%2F%2Fldap1.example.net:6666%2Fo=University%2520of%2520Michigan,%20c=US%3F%3Fsub%3F(cn=Babs%2520Jensen)' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.4202261546368718110.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.4290199739182868567.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '686245' CONTENT_TYPE 'multipart/form-data; boundary=XOr07O0GynedR2gkMKHTiWk51RDBpqkgJ5sY' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '41027' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517867875301531' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517867875301263' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517867875300924' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517867875301590' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f5403f1d858> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53faca1070> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host POST https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object; MMP message has: ParamPart:pid = testMNodeTier3:201836135755153_path-ascii-doc-example-ldap:%2F%2Fldap1.example.net:6666%2Fo=University%2520of%2520Michigan,%20c=US%3F%3Fsub%3F(cn=Babs%2520Jensen); FilePart:object = /tmp/mmp.output.4290199739182868567.tmp (684336 bytes); FilePart:sysmeta = /tmp/mmp.output.4202261546368718110.tmp (1116 bytes); ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:253) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:153) at org.dataone.integration.it.apiTests.MNStorageV2IT.testCreateData_IdentifierEncoding(MNStorageV2IT.java:77) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testCreateData_IdentifierEncoding(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 294.708 sec <<< FAILURE! java.lang.AssertionError: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 21:57:56 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'testMNodeTier3:20183613575694_common-bmp-doc-example-%E0%B8%89%E0%B8%B1%E0%B8%99%E0%B8%81%E0%B8%B4%E0%B8%99%E0%B8%81%E0%B8%A3%E0%B8%B0%E0%B8%88%E0%B8%81%E0%B9%84%E0%B8%94%E0%B9%89' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.3260046581914137508.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.2763136837747959537.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '686263' CONTENT_TYPE 'multipart/form-data; boundary=BmHxdC4PITloBlHjNrvb2kTjZ9XD3Jkd' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '41029' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517867876241331' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517867876241036' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517867876240690' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517867876241393' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53fafed390> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f5416f95230> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host POST https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object; MMP message has: ParamPart:pid = testMNodeTier3:20183613575694_common-bmp-doc-example-%E0%B8%89%E0%B8%B1%E0%B8%99%E0%B8%81%E0%B8%B4%E0%B8%99%E0%B8%81%E0%B8%A3%E0%B8%B0%E0%B8%88%E0%B8%81%E0%B9%84%E0%B8%94%E0%B9%89; FilePart:object = /tmp/mmp.output.2763136837747959537.tmp (684336 bytes); FilePart:sysmeta = /tmp/mmp.output.3260046581914137508.tmp (1133 bytes); ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:253) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:153) at org.dataone.integration.it.apiTests.MNStorageV2IT.testCreateData_IdentifierEncoding(MNStorageV2IT.java:77) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testCreateData_IdentifierEncoding(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 294.709 sec <<< FAILURE! java.lang.AssertionError: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 21:57:57 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'testMNodeTier3:201836135756975_common-bmp-doc-example-Is_f%C3%A9idir_liom_ithe_gloine' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.4002629057136189725.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.6783163234788242770.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '686083' CONTENT_TYPE 'multipart/form-data; boundary=GPWCQNRelN70cvbWuHxxekkyAeVJsqGTmi' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '41030' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517867877122716' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517867877122475' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517867877122103' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517867877122762' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53fb77d420> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f540012fc70> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host POST https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object; MMP message has: ParamPart:pid = testMNodeTier3:201836135756975_common-bmp-doc-example-Is_f%C3%A9idir_liom_ithe_gloine; FilePart:object = /tmp/mmp.output.6783163234788242770.tmp (684336 bytes); FilePart:sysmeta = /tmp/mmp.output.4002629057136189725.tmp (1039 bytes); ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:253) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreateData_IdentifierEncoding(MNStorageTestImplementations.java:153) at org.dataone.integration.it.apiTests.MNStorageV2IT.testCreateData_IdentifierEncoding(MNStorageV2IT.java:77) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testCreate(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 7.513 sec <<< FAILURE! java.lang.AssertionError: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 21:58:05 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'mNodeTier3TestCreate20183613584538' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.8887472064826421335.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.1761496294032570331.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '685965' CONTENT_TYPE 'multipart/form-data; boundary=MY44vZra-exp3OS-2RDm9n0qo52TIl' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '41047' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517867884684227' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517867884683925' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517867884683555' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517867884684291' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f54091658a0> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fac44df0> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host POST https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object; MMP message has: ParamPart:pid = mNodeTier3TestCreate20183613584538; FilePart:object = /tmp/mmp.output.1761496294032570331.tmp (684336 bytes); FilePart:sysmeta = /tmp/mmp.output.8887472064826421335.tmp (988 bytes); ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreate(MNStorageTestImplementations.java:93) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testCreate(MNStorageTestImplementations.java:58) at org.dataone.integration.it.apiTests.MNStorageV2IT.testCreate(MNStorageV2IT.java:65) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testUpdate(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 9.872 sec <<< FAILURE! java.lang.AssertionError: org.dataone.client.exception.ClientSideException: Unable to create test object!/500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 21:58:18 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'testUpdate_201836135818334' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.6315575639045802056.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.2932335683378893419.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '18922' CONTENT_TYPE 'multipart/form-data; boundary=45ZKMzV7AnYqjI6c9ik85NNU65xyJtyZ_Y0GP' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '41083' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517867898485964' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517867898485675' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517867898485311' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517867898486026' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53fafeee88> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fac24070> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host https://pangaea-dev-orc-1.test.dataone.org/mn/v2 ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testUpdate(MNStorageTestImplementations.java:370) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testUpdate(MNStorageTestImplementations.java:288) at org.dataone.integration.it.apiTests.MNStorageV2IT.testUpdate(MNStorageV2IT.java:83) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testUpdate_badObsoletedByInfo(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 7.031 sec <<< FAILURE! java.lang.AssertionError: org.dataone.client.exception.ClientSideException: Unable to create test object!/500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 21:58:25 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'testUpdate_201836135825335' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.919707115676177423.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.729879687169857475.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '18900' CONTENT_TYPE 'multipart/form-data; boundary=xLkDU1up0FEsDF2K59aYifGehB-iFZ-3' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '41104' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517867905511735' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517867905511478' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517867905511114' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517867905511865' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f54096d52b8> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fab74eb0> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host https://pangaea-dev-orc-1.test.dataone.org/mn/v2 ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testUpdate_badObsoletedByInfo(MNStorageTestImplementations.java:433) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testUpdate_badObsoletedByInfo(MNStorageTestImplementations.java:380) at org.dataone.integration.it.apiTests.MNStorageV2IT.testUpdate_badObsoletedByInfo(MNStorageV2IT.java:89) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testUpdate_badObsoletesInfo(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 7.912 sec <<< FAILURE! java.lang.AssertionError: org.dataone.client.exception.ClientSideException: Unable to create test object!/500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 21:58:33 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'testUpdate_201836135833104' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.6589209853804540047.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.2512230773642975616.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '18926' CONTENT_TYPE 'multipart/form-data; boundary=IILp7zE5xw4ICvCncTwRda5V2R7jRYWyR0kj9b' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '41124' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517867913436472' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517867913436204' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517867913435840' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517867913436535' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53fac7d300> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f5401145b30> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host https://pangaea-dev-orc-1.test.dataone.org/mn/v2 ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testUpdate_badObsoletesInfo(MNStorageTestImplementations.java:492) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testUpdate_badObsoletesInfo(MNStorageTestImplementations.java:442) at org.dataone.integration.it.apiTests.MNStorageV2IT.testUpdate_badObsoletesInfo(MNStorageV2IT.java:95) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testUpdate_NoCert(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 5.937 sec <<< FAILURE! java.lang.AssertionError: Exception while setting up test (callAdapter.create): ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 21:58:39 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'mNodeTier3TestUpdate201836135838896' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.2604867788582003621.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.3171007856426694411.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '685975' CONTENT_TYPE 'multipart/form-data; boundary=UQYvSjXcA3TV6UEjn0OEZHN9URkhoDj2' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '41139' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517867919043858' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517867919043535' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517867919043171' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517867919043920' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f540913ff60> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fb04f670> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host POST https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object; MMP message has: ParamPart:pid = mNodeTier3TestUpdate201836135838896; FilePart:object = /tmp/mmp.output.3171007856426694411.tmp (684336 bytes); FilePart:sysmeta = /tmp/mmp.output.2604867788582003621.tmp (989 bytes); ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testUpdate_NoCert(MNStorageTestImplementations.java:558) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testUpdate_NoCert(MNStorageTestImplementations.java:502) at org.dataone.integration.it.apiTests.MNStorageV2IT.testUpdate_NoCert(MNStorageV2IT.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testUpdate_NoRightsOnObsoleted(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 6.14 sec <<< FAILURE! java.lang.AssertionError: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 21:58:45 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'mNodeTier3TestUpdate201836135844923' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.1734949925133425150.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.4541529903732273659.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '686007' CONTENT_TYPE 'multipart/form-data; boundary=bZCCXTIkKZhQpz3lFrBs43s3rM3m10VGxuDNSUgc' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '41182' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517867925070994' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517867925070689' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517867925070274' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517867925071064' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53fac2f810> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fad8b4f0> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host POST https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object; MMP message has: ParamPart:pid = mNodeTier3TestUpdate201836135844923; FilePart:object = /tmp/mmp.output.4541529903732273659.tmp (684336 bytes); FilePart:sysmeta = /tmp/mmp.output.1734949925133425150.tmp (989 bytes); ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testUpdate_NoRightsOnObsoleted(MNStorageTestImplementations.java:621) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testUpdate_NoRightsOnObsoleted(MNStorageTestImplementations.java:576) at org.dataone.integration.it.apiTests.MNStorageV2IT.testUpdate_NoRightsOnObsoleted(MNStorageV2IT.java:107) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testArchive(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 8.218 sec <<< FAILURE! java.lang.AssertionError: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 21:58:53 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'mNodeTier3TestDelete201836135853201' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.9191298351609435142.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.6289822689149438733.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '685991' CONTENT_TYPE 'multipart/form-data; boundary=pPO4uoQJCH8LG1rCb2gz_6-mPxdZ9ElDqoSU' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '41204' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517867933346870' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517867933346573' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517867933346126' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517867933346933' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53faca7228> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f5403cec9f0> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host POST https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object; MMP message has: ParamPart:pid = mNodeTier3TestDelete201836135853201; FilePart:object = /tmp/mmp.output.6289822689149438733.tmp (684336 bytes); FilePart:sysmeta = /tmp/mmp.output.9191298351609435142.tmp (989 bytes); ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testArchive(MNStorageTestImplementations.java:672) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testArchive(MNStorageTestImplementations.java:638) at org.dataone.integration.it.apiTests.MNStorageV2IT.testArchive(MNStorageV2IT.java:113) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testArchive_NotFound(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 2.625 sec <<< FAILURE! java.lang.AssertionError: Expected NotFound, got: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator at email@monicaihli.com to inform them of the time this error occurred, and the actions you performed just before this error. More information about this error may be available in the server error log. Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443 [for host PUT https://pangaea-dev-orc-1.test.dataone.org/mn/v2/archive/fakeID.201836135856537; MMP entity is null ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testArchive_NotFound(MNStorageTestImplementations.java:711) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testArchive_NotFound(MNStorageTestImplementations.java:687) at org.dataone.integration.it.apiTests.MNStorageV2IT.testArchive_NotFound(MNStorageV2IT.java:119) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testArchive_NoCert(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 6.579 sec <<< FAILURE! java.lang.AssertionError: Expected InvalidToken or NotAuthorized, got: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 21:59:03 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'mNodeTier3TestArchive20183613592499' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.4860239849963895708.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.2403389648901305862.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '685991' CONTENT_TYPE 'multipart/form-data; boundary=ZCIZhwZzIStZxjcCAxayZQLLQAjIdQIsOp4X' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '41235' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517867942650056' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517867942649789' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517867942649426' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517867942650118' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53fac9e588> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f5416f95070> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host POST https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object; MMP message has: ParamPart:pid = mNodeTier3TestArchive20183613592499; FilePart:object = /tmp/mmp.output.2403389648901305862.tmp (684336 bytes); FilePart:sysmeta = /tmp/mmp.output.4860239849963895708.tmp (989 bytes); ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testArchive_NoCert(MNStorageTestImplementations.java:786) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testArchive_NoCert(MNStorageTestImplementations.java:726) at org.dataone.integration.it.apiTests.MNStorageV2IT.testArchive_NoCert(MNStorageV2IT.java:125) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testDelete_NoCert(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 6.153 sec <<< FAILURE! java.lang.AssertionError: Expected InvalidToken, got: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 21:59:09 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'mNodeTier3TestDelete20183613598610' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.8259215906513015757.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.2451286240088667775.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '685981' CONTENT_TYPE 'multipart/form-data; boundary=QLhwv977Usv7pJN9wf4IqkSd6PaH6ZBfHX' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '41266' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517867948760866' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517867948760614' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517867948760245' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517867948760917' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53faca7b28> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53faca9bb0> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host DELETE https://mn-sandbox-ucsb-2.test.dataone.org/knb/d1/mn/v2/object/mNodeTier3TestDelete20183613597343 ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testDelete_NoCert(MNStorageTestImplementations.java:862) at org.dataone.integration.it.testImplementations.MNStorageTestImplementations.testDelete_NoCert(MNStorageTestImplementations.java:802) at org.dataone.integration.it.apiTests.MNStorageV2IT.testDelete_NoCert(MNStorageV2IT.java:131) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testUpdateSystemMetadata_RightsHolder(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 29.744 sec <<< FAILURE! java.lang.AssertionError: org.dataone.client.exception.ClientSideException: Unable to create test object!/500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 21:59:38 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'testUpdateSystemMetadata_RightsHolder_201836135938439' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.391323472681624990.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.2928623073640139669.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '18979' CONTENT_TYPE 'multipart/form-data; boundary=knyQiWZX8LAt0D2CZcgrJjkYwNs-oYwart6R0n' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '41302' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517867978808246' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517867978807975' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517867978807610' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517867978808308' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53fac532b8> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fad635f0> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host https://pangaea-dev-orc-1.test.dataone.org/mn/v2 ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNUpdateSystemMetadataTestImplementations.testUpdateSystemMetadata_RightsHolder(MNUpdateSystemMetadataTestImplementations.java:162) at org.dataone.integration.it.testImplementations.MNUpdateSystemMetadataTestImplementations.testUpdateSystemMetadata_RightsHolder(MNUpdateSystemMetadataTestImplementations.java:120) at org.dataone.integration.it.apiTests.MNStorageV2IT.testUpdateSystemMetadata_RightsHolder(MNStorageV2IT.java:144) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testUpdateSystemMetadata_InvalidRequest_NoPid(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 7.074 sec <<< FAILURE! java.lang.AssertionError: Expected an InvalidRequest exception. Got: ServiceFailure: 0 Client_Error: class org.dataone.exceptions.MarshallingException: null [for host GET https://mn-sandbox-ucsb-1.test.dataone.org/knb/d1/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_NoPid_201836135948738 ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.UpdateSystemMetadataTestImplementations.testUpdateSystemMetadata_InvalidRequest_NoPid(UpdateSystemMetadataTestImplementations.java:116) at org.dataone.integration.it.testImplementations.UpdateSystemMetadataTestImplementations.testUpdateSystemMetadata_InvalidRequest_NoPid(UpdateSystemMetadataTestImplementations.java:89) at org.dataone.integration.it.apiTests.MNStorageV2IT.testUpdateSystemMetadata_InvalidRequest_NoPid(MNStorageV2IT.java:168) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testUpdateSystemMetadata_InvalidRequest_NoPid(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 7.074 sec <<< FAILURE! java.lang.AssertionError: Expected an InvalidRequest exception. Got: ServiceFailure: 0 Client_Error: class org.dataone.exceptions.MarshallingException: null [for host GET https://mn-sandbox-ucsb-2.test.dataone.org/knb/d1/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_NoPid_201836135951796 ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.UpdateSystemMetadataTestImplementations.testUpdateSystemMetadata_InvalidRequest_NoPid(UpdateSystemMetadataTestImplementations.java:116) at org.dataone.integration.it.testImplementations.UpdateSystemMetadataTestImplementations.testUpdateSystemMetadata_InvalidRequest_NoPid(UpdateSystemMetadataTestImplementations.java:89) at org.dataone.integration.it.apiTests.MNStorageV2IT.testUpdateSystemMetadata_InvalidRequest_NoPid(MNStorageV2IT.java:168) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testUpdateSystemMetadata_InvalidRequest_NoPid(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 7.075 sec <<< FAILURE! java.lang.AssertionError: Expected an InvalidRequest exception. Got: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/meta/testUpdateSystemMetadata_InvalidRequest_NoPid_20183613595378 name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: GET Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_NoPid_20183613595378 Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 21:59:53 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410>> request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_NoPid_20183613595378'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_NoPid_20183613595378'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function get_meta at 0x7f53fb9d92a8> callback_args (u'testUpdateSystemMetadata_InvalidRequest_NoPid_20183613595378',) callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_NoPid_20183613595378'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.get_meta, args=(u'testUpdateSystemMetadata_InvalidRequest_NoPid_20183613595378',), kwargs={}, url_name=get_meta, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_NoPid_20183613595378'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args (u'testUpdateSystemMetadata_InvalidRequest_NoPid_20183613595378',) view_func <function get_meta at 0x7f53fb9d92a8> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_NoPid_20183613595378'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_NoPid_20183613595378'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_NoPid_20183613595378'> Environment: Request Method: GET Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_NoPid_20183613595378 Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/meta/testUpdateSystemMetadata_InvalidRequest_NoPid_20183613595378 Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST No POST data FILES No FILES data COOKIES No cookie data META Variable Value CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/meta/testUpdateSystemMetadata_InvalidRequest_NoPid_20183613595378' PATH_TRANSLATED '/var/www/html/v2/meta/testUpdateSystemMetadata_InvalidRequest_NoPid_20183613595378' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '41366' REQUEST_METHOD 'GET' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_NoPid_20183613595378' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517867993218652' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517867993218350' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517867993217953' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517867993218714' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53fac9ce40> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fac2d030> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host GET https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_NoPid_20183613595378 ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.UpdateSystemMetadataTestImplementations.testUpdateSystemMetadata_InvalidRequest_NoPid(UpdateSystemMetadataTestImplementations.java:116) at org.dataone.integration.it.testImplementations.UpdateSystemMetadataTestImplementations.testUpdateSystemMetadata_InvalidRequest_NoPid(UpdateSystemMetadataTestImplementations.java:89) at org.dataone.integration.it.apiTests.MNStorageV2IT.testUpdateSystemMetadata_InvalidRequest_NoPid(MNStorageV2IT.java:168) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testUpdateSystemMetadata_NoSerialVersion(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 6.845 sec <<< FAILURE! java.lang.AssertionError: Expected no exception. Got: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/meta/testUpdateSystemMetadata_NoSerialVersion_201836135959926 name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: GET Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/testUpdateSystemMetadata_NoSerialVersion_201836135959926 Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 22:00:00 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410>> request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_NoSerialVersion_201836135959926'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_NoSerialVersion_201836135959926'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function get_meta at 0x7f53fb9d92a8> callback_args (u'testUpdateSystemMetadata_NoSerialVersion_201836135959926',) callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_NoSerialVersion_201836135959926'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.get_meta, args=(u'testUpdateSystemMetadata_NoSerialVersion_201836135959926',), kwargs={}, url_name=get_meta, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_NoSerialVersion_201836135959926'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args (u'testUpdateSystemMetadata_NoSerialVersion_201836135959926',) view_func <function get_meta at 0x7f53fb9d92a8> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_NoSerialVersion_201836135959926'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_NoSerialVersion_201836135959926'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_NoSerialVersion_201836135959926'> Environment: Request Method: GET Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/testUpdateSystemMetadata_NoSerialVersion_201836135959926 Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/meta/testUpdateSystemMetadata_NoSerialVersion_201836135959926 Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST No POST data FILES No FILES data COOKIES No cookie data META Variable Value CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/meta/testUpdateSystemMetadata_NoSerialVersion_201836135959926' PATH_TRANSLATED '/var/www/html/v2/meta/testUpdateSystemMetadata_NoSerialVersion_201836135959926' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '41388' REQUEST_METHOD 'GET' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/meta/testUpdateSystemMetadata_NoSerialVersion_201836135959926' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517868000065461' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517868000065224' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517868000064868' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517868000065524' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53fadcbb70> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fab91e30> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host GET https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/testUpdateSystemMetadata_NoSerialVersion_201836135959926 ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.UpdateSystemMetadataTestImplementations.testUpdateSystemMetadata_NoSerialVersion(UpdateSystemMetadataTestImplementations.java:197) at org.dataone.integration.it.testImplementations.UpdateSystemMetadataTestImplementations.testUpdateSystemMetadata_NoSerialVersion(UpdateSystemMetadataTestImplementations.java:173) at org.dataone.integration.it.apiTests.MNStorageV2IT.testUpdateSystemMetadata_NoSerialVersion(MNStorageV2IT.java:174) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testUpdateSystemMetadata_InvalidRequest_PidMismatch(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 8.254 sec <<< FAILURE! java.lang.AssertionError: Expected an InvalidRequest. Got: ServiceFailure: 0 Client_Error: class org.dataone.exceptions.MarshallingException: null [for host GET https://mn-sandbox-ucsb-1.test.dataone.org/knb/d1/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_PidMismatch20183614058 ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.UpdateSystemMetadataTestImplementations.testUpdateSystemMetadata_InvalidRequest_PidMismatch(UpdateSystemMetadataTestImplementations.java:240) at org.dataone.integration.it.testImplementations.UpdateSystemMetadataTestImplementations.testUpdateSystemMetadata_InvalidRequest_PidMismatch(UpdateSystemMetadataTestImplementations.java:212) at org.dataone.integration.it.apiTests.MNStorageV2IT.testUpdateSystemMetadata_InvalidRequest_PidMismatch(MNStorageV2IT.java:180) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testUpdateSystemMetadata_InvalidRequest_PidMismatch(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 8.254 sec <<< FAILURE! java.lang.AssertionError: Expected an InvalidRequest. Got: ServiceFailure: 0 Client_Error: class org.dataone.exceptions.MarshallingException: null [for host GET https://mn-sandbox-ucsb-2.test.dataone.org/knb/d1/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_PidMismatch2018361406956 ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.UpdateSystemMetadataTestImplementations.testUpdateSystemMetadata_InvalidRequest_PidMismatch(UpdateSystemMetadataTestImplementations.java:240) at org.dataone.integration.it.testImplementations.UpdateSystemMetadataTestImplementations.testUpdateSystemMetadata_InvalidRequest_PidMismatch(UpdateSystemMetadataTestImplementations.java:212) at org.dataone.integration.it.apiTests.MNStorageV2IT.testUpdateSystemMetadata_InvalidRequest_PidMismatch(MNStorageV2IT.java:180) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testUpdateSystemMetadata_InvalidRequest_PidMismatch(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 8.255 sec <<< FAILURE! java.lang.AssertionError: Expected an InvalidRequest. Got: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/meta/testUpdateSystemMetadata_InvalidRequest_PidMismatch2018361408172 name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: GET Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_PidMismatch2018361408172 Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 22:00:08 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410>> request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_PidMismatch2018361408172'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_PidMismatch2018361408172'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function get_meta at 0x7f53fb9d92a8> callback_args (u'testUpdateSystemMetadata_InvalidRequest_PidMismatch2018361408172',) callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_PidMismatch2018361408172'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.get_meta, args=(u'testUpdateSystemMetadata_InvalidRequest_PidMismatch2018361408172',), kwargs={}, url_name=get_meta, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_PidMismatch2018361408172'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args (u'testUpdateSystemMetadata_InvalidRequest_PidMismatch2018361408172',) view_func <function get_meta at 0x7f53fb9d92a8> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_PidMismatch2018361408172'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_PidMismatch2018361408172'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_PidMismatch2018361408172'> Environment: Request Method: GET Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_PidMismatch2018361408172 Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/meta/testUpdateSystemMetadata_InvalidRequest_PidMismatch2018361408172 Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST No POST data FILES No FILES data COOKIES No cookie data META Variable Value CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/meta/testUpdateSystemMetadata_InvalidRequest_PidMismatch2018361408172' PATH_TRANSLATED '/var/www/html/v2/meta/testUpdateSystemMetadata_InvalidRequest_PidMismatch2018361408172' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '41419' REQUEST_METHOD 'GET' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_PidMismatch2018361408172' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517868008311634' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517868008311331' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517868008310976' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517868008311697' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53fb9dbed0> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fac52fb0> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host GET https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_PidMismatch2018361408172 ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.UpdateSystemMetadataTestImplementations.testUpdateSystemMetadata_InvalidRequest_PidMismatch(UpdateSystemMetadataTestImplementations.java:240) at org.dataone.integration.it.testImplementations.UpdateSystemMetadataTestImplementations.testUpdateSystemMetadata_InvalidRequest_PidMismatch(UpdateSystemMetadataTestImplementations.java:212) at org.dataone.integration.it.apiTests.MNStorageV2IT.testUpdateSystemMetadata_InvalidRequest_PidMismatch(MNStorageV2IT.java:180) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testUpdateSystemMetadata_InvalidRequest_SysmetaUnmodified(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 7.044 sec <<< FAILURE! java.lang.AssertionError: updateSystemMetadata call shouldn't fail if metadata was not modified. Got: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/meta/testUpdateSystemMetadata_InvalidSystemMetadata_SysmetaUnmodified20183614015225 name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: GET Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/testUpdateSystemMetadata_InvalidSystemMetadata_SysmetaUnmodified20183614015225 Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 22:00:15 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410>> request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidSystemMetadata_SysmetaUnmodified20183614015225'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidSystemMetadata_SysmetaUnmodified20183614015225'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function get_meta at 0x7f53fb9d92a8> callback_args (u'testUpdateSystemMetadata_InvalidSystemMetadata_SysmetaUnmodified20183614015225',) callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidSystemMetadata_SysmetaUnmodified20183614015225'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.get_meta, args=(u'testUpdateSystemMetadata_InvalidSystemMetadata_SysmetaUnmodified20183614015225',), kwargs={}, url_name=get_meta, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidSystemMetadata_SysmetaUnmodified20183614015225'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args (u'testUpdateSystemMetadata_InvalidSystemMetadata_SysmetaUnmodified20183614015225',) view_func <function get_meta at 0x7f53fb9d92a8> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidSystemMetadata_SysmetaUnmodified20183614015225'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidSystemMetadata_SysmetaUnmodified20183614015225'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidSystemMetadata_SysmetaUnmodified20183614015225'> Environment: Request Method: GET Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/testUpdateSystemMetadata_InvalidSystemMetadata_SysmetaUnmodified20183614015225 Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/meta/testUpdateSystemMetadata_InvalidSystemMetadata_SysmetaUnmodified20183614015225 Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST No POST data FILES No FILES data COOKIES No cookie data META Variable Value CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/meta/testUpdateSystemMetadata_InvalidSystemMetadata_SysmetaUnmodified20183614015225' PATH_TRANSLATED '/var/www/html/v2/meta/testUpdateSystemMetadata_InvalidSystemMetadata_SysmetaUnmodified20183614015225' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '41457' REQUEST_METHOD 'GET' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/meta/testUpdateSystemMetadata_InvalidSystemMetadata_SysmetaUnmodified20183614015225' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517868015365271' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517868015364975' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517868015364616' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517868015365332' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f5403f2a618> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fac24830> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host GET https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/testUpdateSystemMetadata_InvalidSystemMetadata_SysmetaUnmodified20183614015225 ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.UpdateSystemMetadataTestImplementations.testUpdateSystemMetadata_InvalidSystemMetadata_SysmetaUnmodified(UpdateSystemMetadataTestImplementations.java:276) at org.dataone.integration.it.testImplementations.UpdateSystemMetadataTestImplementations.testUpdateSystemMetadata_InvalidSystemMetadata_SysmetaUnmodified(UpdateSystemMetadataTestImplementations.java:255) at org.dataone.integration.it.apiTests.MNStorageV2IT.testUpdateSystemMetadata_InvalidRequest_SysmetaUnmodified(MNStorageV2IT.java:186) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testUpdateSystemMetadata_MutableRightsHolder(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 29.215 sec <<< FAILURE! java.lang.AssertionError: org.dataone.client.exception.ClientSideException: Unable to create test object!/500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 22:00:44 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'testUpdateSystemMetadata_MutableRightsHolder_20183614044254' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.2752626308237669743.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.7654231573613543063.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '18984' CONTENT_TYPE 'multipart/form-data; boundary=rnqB0qrz_fKVotHa1SjhdE9tFSWNE3ZijSDi' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '41538' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517868044557347' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517868044557105' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517868044556737' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517868044557409' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53fad618a0> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53facf3f30> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host https://pangaea-dev-orc-1.test.dataone.org/mn/v2 ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNUpdateSystemMetadataTestImplementations.testUpdateSystemMetadata_MutableRightsHolder(MNUpdateSystemMetadataTestImplementations.java:217) at org.dataone.integration.it.testImplementations.MNUpdateSystemMetadataTestImplementations.testUpdateSystemMetadata_MutableRightsHolder(MNUpdateSystemMetadataTestImplementations.java:174) at org.dataone.integration.it.apiTests.MNStorageV2IT.testUpdateSystemMetadata_MutableRightsHolder(MNStorageV2IT.java:192) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testUpdateSystemMetadata_MutableFormat(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 28.114 sec <<< FAILURE! java.lang.AssertionError: org.dataone.client.exception.ClientSideException: Unable to create test object!/500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 22:01:12 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'testUpdateSystemMetadata_MutableFormat_20183614112495' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.5975282913134655265.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.8676949469094652406.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '18980' CONTENT_TYPE 'multipart/form-data; boundary=zG4gshuX3vu4zP4ikBnug2Tb0W6fhBLlfCw_bi' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '41576' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517868072667999' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517868072667734' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517868072667363' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517868072668061' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53fabd9df8> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fad9aa30> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host https://pangaea-dev-orc-1.test.dataone.org/mn/v2 ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNUpdateSystemMetadataTestImplementations.testUpdateSystemMetadata_MutableFormat(MNUpdateSystemMetadataTestImplementations.java:270) at org.dataone.integration.it.testImplementations.MNUpdateSystemMetadataTestImplementations.testUpdateSystemMetadata_MutableFormat(MNUpdateSystemMetadataTestImplementations.java:229) at org.dataone.integration.it.apiTests.MNStorageV2IT.testUpdateSystemMetadata_MutableFormat(MNStorageV2IT.java:198) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testUpdateSystemMetadata_MutableAccessPolicy(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 28.411 sec <<< FAILURE! java.lang.AssertionError: org.dataone.client.exception.ClientSideException: Unable to create test object!/500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 22:01:41 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'testUpdateSystemMetadata_MutableAccessPolicy_20183614140936' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.1726029220442584834.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.8548713568787539996.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '18976' CONTENT_TYPE 'multipart/form-data; boundary=eKBlDufexslzbRAEUhkfQ3ImW3V9vjY8dM' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '41631' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517868101084027' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517868101083719' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517868101083355' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517868101084084' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53fada4d20> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fac2afb0> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host https://pangaea-dev-orc-1.test.dataone.org/mn/v2 ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNUpdateSystemMetadataTestImplementations.testUpdateSystemMetadata_MutableAccessPolicy(MNUpdateSystemMetadataTestImplementations.java:338) at org.dataone.integration.it.testImplementations.MNUpdateSystemMetadataTestImplementations.testUpdateSystemMetadata_MutableAccessPolicy(MNUpdateSystemMetadataTestImplementations.java:282) at org.dataone.integration.it.apiTests.MNStorageV2IT.testUpdateSystemMetadata_MutableAccessPolicy(MNStorageV2IT.java:204) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testUpdateSystemMetadata_MutableReplPolicy(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 28.429 sec <<< FAILURE! java.lang.AssertionError: org.dataone.client.exception.ClientSideException: Unable to create test object!/500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 22:02:09 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'testUpdateSystemMetadata_MutableReplPolicy_2018361429200' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.1418012894812361042.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.8832076770205129571.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '18986' CONTENT_TYPE 'multipart/form-data; boundary=V9Y-2sy_jLGACiHDQ9Cd99G-VQSJJfFza_zJAp' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '41663' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517868129516567' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517868129516243' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517868129515827' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517868129516636' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f54010cd780> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fad05070> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host https://pangaea-dev-orc-1.test.dataone.org/mn/v2 ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.MNUpdateSystemMetadataTestImplementations.testUpdateSystemMetadata_MutableReplPolicy(MNUpdateSystemMetadataTestImplementations.java:400) at org.dataone.integration.it.testImplementations.MNUpdateSystemMetadataTestImplementations.testUpdateSystemMetadata_MutableReplPolicy(MNUpdateSystemMetadataTestImplementations.java:350) at org.dataone.integration.it.apiTests.MNStorageV2IT.testUpdateSystemMetadata_MutableReplPolicy(MNStorageV2IT.java:210) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testUpdateSystemMetadata_InvalidRequest_ModifiedIdentifier(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 6.845 sec <<< FAILURE! java.lang.AssertionError: Expected an InvalidRequest exception. Got: org.dataone.client.exception.ClientSideException: Unable to create test object!/500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 22:02:16 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'testUpdateSystemMetadata_InvalidRequest_ModifiedIdentifier_20183614216214' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.4181437803838277925.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.3320454398818360839.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '18987' CONTENT_TYPE 'multipart/form-data; boundary=Sj-wdrUAlsjD0ARSjb4d2-gVfyFIQrcWden' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '41686' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517868136359179' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517868136358855' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517868136358489' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517868136359243' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f5408656030> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fac80970> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host https://pangaea-dev-orc-1.test.dataone.org/mn/v2 ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.UpdateSystemMetadataTestImplementations.testUpdateSystemMetadata_InvalidRequest_ModifiedIdentifier(UpdateSystemMetadataTestImplementations.java:327) at org.dataone.integration.it.testImplementations.UpdateSystemMetadataTestImplementations.testUpdateSystemMetadata_InvalidRequest_ModifiedIdentifier(UpdateSystemMetadataTestImplementations.java:293) at org.dataone.integration.it.apiTests.MNStorageV2IT.testUpdateSystemMetadata_InvalidRequest_ModifiedIdentifier(MNStorageV2IT.java:241) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testUpdateSystemMetadata_InvalidRequest_ModifiedSize(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 9.09 sec <<< FAILURE! java.lang.AssertionError: Expected an InvalidRequest. Got: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedSize20183614225334 name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: GET Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedSize20183614225334 Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 22:02:25 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410>> request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedSize20183614225334'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedSize20183614225334'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function get_meta at 0x7f53fb9d92a8> callback_args (u'testUpdateSystemMetadata_InvalidRequest_ModifiedSize20183614225334',) callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedSize20183614225334'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.get_meta, args=(u'testUpdateSystemMetadata_InvalidRequest_ModifiedSize20183614225334',), kwargs={}, url_name=get_meta, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedSize20183614225334'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args (u'testUpdateSystemMetadata_InvalidRequest_ModifiedSize20183614225334',) view_func <function get_meta at 0x7f53fb9d92a8> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedSize20183614225334'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedSize20183614225334'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedSize20183614225334'> Environment: Request Method: GET Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedSize20183614225334 Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedSize20183614225334 Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST No POST data FILES No FILES data COOKIES No cookie data META Variable Value CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedSize20183614225334' PATH_TRANSLATED '/var/www/html/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedSize20183614225334' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '41707' REQUEST_METHOD 'GET' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedSize20183614225334' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517868145473097' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517868145472781' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517868145472426' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517868145473170' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53faca7b28> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fad90570> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host GET https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedSize20183614225334 ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.UpdateSystemMetadataTestImplementations.testUpdateSystemMetadata_InvalidRequest_ModifiedSize(UpdateSystemMetadataTestImplementations.java:367) at org.dataone.integration.it.testImplementations.UpdateSystemMetadataTestImplementations.testUpdateSystemMetadata_InvalidRequest_ModifiedSize(UpdateSystemMetadataTestImplementations.java:337) at org.dataone.integration.it.apiTests.MNStorageV2IT.testUpdateSystemMetadata_InvalidRequest_ModifiedSize(MNStorageV2IT.java:247) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testUpdateSystemMetadata_InvalidRequest_ModifiedChecksum(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 7.048 sec <<< FAILURE! java.lang.AssertionError: Expected an InvalidRequest. Got: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedChecksum20183614232279 name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: GET Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedChecksum20183614232279 Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 22:02:32 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410>> request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedChecksum20183614232279'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedChecksum20183614232279'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function get_meta at 0x7f53fb9d92a8> callback_args (u'testUpdateSystemMetadata_InvalidRequest_ModifiedChecksum20183614232279',) callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedChecksum20183614232279'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.get_meta, args=(u'testUpdateSystemMetadata_InvalidRequest_ModifiedChecksum20183614232279',), kwargs={}, url_name=get_meta, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedChecksum20183614232279'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args (u'testUpdateSystemMetadata_InvalidRequest_ModifiedChecksum20183614232279',) view_func <function get_meta at 0x7f53fb9d92a8> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedChecksum20183614232279'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedChecksum20183614232279'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedChecksum20183614232279'> Environment: Request Method: GET Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedChecksum20183614232279 Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedChecksum20183614232279 Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST No POST data FILES No FILES data COOKIES No cookie data META Variable Value CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedChecksum20183614232279' PATH_TRANSLATED '/var/www/html/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedChecksum20183614232279' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '41729' REQUEST_METHOD 'GET' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedChecksum20183614232279' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517868152522336' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517868152521986' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517868152521626' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517868152522405' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53fb9d6b70> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fad798b0> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host GET https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedChecksum20183614232279 ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.UpdateSystemMetadataTestImplementations.testUpdateSystemMetadata_InvalidRequest_ModifiedChecksum(UpdateSystemMetadataTestImplementations.java:413) at org.dataone.integration.it.testImplementations.UpdateSystemMetadataTestImplementations.testUpdateSystemMetadata_InvalidRequest_ModifiedChecksum(UpdateSystemMetadataTestImplementations.java:382) at org.dataone.integration.it.apiTests.MNStorageV2IT.testUpdateSystemMetadata_InvalidRequest_ModifiedChecksum(MNStorageV2IT.java:253) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testUpdateSystemMetadata_InvalidRequest_ModifiedSubmitter(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 6.193 sec <<< FAILURE! java.lang.AssertionError: Expected an InvalidRequest exception. Got: org.dataone.client.exception.ClientSideException: Unable to create test object!/500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 22:02:38 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'testUpdateSystemMetadata_InvalidRequest_ModifiedSubmitter20183614238545' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.3827182376534998737.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.2202212803473666383.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '18977' CONTENT_TYPE 'multipart/form-data; boundary=d1Gc1gdtFgijrTvRZxD4Bn6YR_Kfw2MPbjL' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '41747' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517868158693811' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517868158693567' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517868158693184' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517868158693933' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f54010cf030> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f5416f95230> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host https://pangaea-dev-orc-1.test.dataone.org/mn/v2 ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.UpdateSystemMetadataTestImplementations.testUpdateSystemMetadata_InvalidRequest_ModifiedSubmitter(UpdateSystemMetadataTestImplementations.java:464) at org.dataone.integration.it.testImplementations.UpdateSystemMetadataTestImplementations.testUpdateSystemMetadata_InvalidRequest_ModifiedSubmitter(UpdateSystemMetadataTestImplementations.java:428) at org.dataone.integration.it.apiTests.MNStorageV2IT.testUpdateSystemMetadata_InvalidRequest_ModifiedSubmitter(MNStorageV2IT.java:259) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testUpdateSystemMetadata_InvalidRequest_ModifiedDateUploaded(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 6.85 sec <<< FAILURE! java.lang.AssertionError: Expected an InvalidRequest. Got: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedDateUploaded_20183614245429 name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: GET Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedDateUploaded_20183614245429 Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 22:02:45 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410>> request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedDateUploaded_20183614245429'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedDateUploaded_20183614245429'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function get_meta at 0x7f53fb9d92a8> callback_args (u'testUpdateSystemMetadata_InvalidRequest_ModifiedDateUploaded_20183614245429',) callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedDateUploaded_20183614245429'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.get_meta, args=(u'testUpdateSystemMetadata_InvalidRequest_ModifiedDateUploaded_20183614245429',), kwargs={}, url_name=get_meta, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408329410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedDateUploaded_20183614245429'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args (u'testUpdateSystemMetadata_InvalidRequest_ModifiedDateUploaded_20183614245429',) view_func <function get_meta at 0x7f53fb9d92a8> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedDateUploaded_20183614245429'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedDateUploaded_20183614245429'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedDateUploaded_20183614245429'> Environment: Request Method: GET Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedDateUploaded_20183614245429 Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedDateUploaded_20183614245429 Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST No POST data FILES No FILES data COOKIES No cookie data META Variable Value CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedDateUploaded_20183614245429' PATH_TRANSLATED '/var/www/html/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedDateUploaded_20183614245429' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '41788' REQUEST_METHOD 'GET' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedDateUploaded_20183614245429' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517868165568764' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517868165568495' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517868165568141' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517868165568826' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f54010cfbb8> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fae960b0> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host GET https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedDateUploaded_20183614245429 ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.UpdateSystemMetadataTestImplementations.testUpdateSystemMetadata_InvalidRequest_ModifiedDateUploaded(UpdateSystemMetadataTestImplementations.java:502) at org.dataone.integration.it.testImplementations.UpdateSystemMetadataTestImplementations.testUpdateSystemMetadata_InvalidRequest_ModifiedDateUploaded(UpdateSystemMetadataTestImplementations.java:474) at org.dataone.integration.it.apiTests.MNStorageV2IT.testUpdateSystemMetadata_InvalidRequest_ModifiedDateUploaded(MNStorageV2IT.java:265) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testUpdateSystemMetadata_InvalidRequest_ModifiedOriginMN(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 6.881 sec <<< FAILURE! java.lang.AssertionError: Expected an InvalidRequest. Got: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedOriginMN_20183614252309 name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: GET Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedOriginMN_20183614252309 Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 22:02:52 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410>> request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedOriginMN_20183614252309'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedOriginMN_20183614252309'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function get_meta at 0x7f53fb9d92a8> callback_args (u'testUpdateSystemMetadata_InvalidRequest_ModifiedOriginMN_20183614252309',) callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedOriginMN_20183614252309'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.get_meta, args=(u'testUpdateSystemMetadata_InvalidRequest_ModifiedOriginMN_20183614252309',), kwargs={}, url_name=get_meta, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedOriginMN_20183614252309'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args (u'testUpdateSystemMetadata_InvalidRequest_ModifiedOriginMN_20183614252309',) view_func <function get_meta at 0x7f53fb9d92a8> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedOriginMN_20183614252309'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedOriginMN_20183614252309'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedOriginMN_20183614252309'> Environment: Request Method: GET Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedOriginMN_20183614252309 Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedOriginMN_20183614252309 Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST No POST data FILES No FILES data COOKIES No cookie data META Variable Value CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedOriginMN_20183614252309' PATH_TRANSLATED '/var/www/html/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedOriginMN_20183614252309' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '41809' REQUEST_METHOD 'GET' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedOriginMN_20183614252309' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517868172447588' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517868172447337' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517868172446977' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517868172447653' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53fb9d6b70> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fad95e30> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host GET https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_ModifiedOriginMN_20183614252309 ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.UpdateSystemMetadataTestImplementations.testUpdateSystemMetadata_InvalidRequest_ModifiedOriginMN(UpdateSystemMetadataTestImplementations.java:545) at org.dataone.integration.it.testImplementations.UpdateSystemMetadataTestImplementations.testUpdateSystemMetadata_InvalidRequest_ModifiedOriginMN(UpdateSystemMetadataTestImplementations.java:517) at org.dataone.integration.it.apiTests.MNStorageV2IT.testUpdateSystemMetadata_InvalidRequest_ModifiedOriginMN(MNStorageV2IT.java:271) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testUpdateSystemMetadata_InvalidRequest_NullOriginMN(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 6.793 sec <<< FAILURE! java.lang.AssertionError: Expected an InvalidRequest. Got: ServiceFailure: -1: 500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/meta/testUpdateSystemMetadata_InvalidRequest_NullOriginMN20183614259101 name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: GET Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_NullOriginMN20183614259101 Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 22:02:59 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410>> request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_NullOriginMN20183614259101'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_NullOriginMN20183614259101'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function get_meta at 0x7f53fb9d92a8> callback_args (u'testUpdateSystemMetadata_InvalidRequest_NullOriginMN20183614259101',) callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_NullOriginMN20183614259101'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.get_meta, args=(u'testUpdateSystemMetadata_InvalidRequest_NullOriginMN20183614259101',), kwargs={}, url_name=get_meta, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_NullOriginMN20183614259101'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args (u'testUpdateSystemMetadata_InvalidRequest_NullOriginMN20183614259101',) view_func <function get_meta at 0x7f53fb9d92a8> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_NullOriginMN20183614259101'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_NullOriginMN20183614259101'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: GET '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_NullOriginMN20183614259101'> Environment: Request Method: GET Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_NullOriginMN20183614259101 Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/meta/testUpdateSystemMetadata_InvalidRequest_NullOriginMN20183614259101 Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST No POST data FILES No FILES data COOKIES No cookie data META Variable Value CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/meta/testUpdateSystemMetadata_InvalidRequest_NullOriginMN20183614259101' PATH_TRANSLATED '/var/www/html/v2/meta/testUpdateSystemMetadata_InvalidRequest_NullOriginMN20183614259101' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '41830' REQUEST_METHOD 'GET' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_NullOriginMN20183614259101' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517868179240665' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517868179240363' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517868179239998' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517868179240727' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53fb9d6b70> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fad1e2b0> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host GET https://pangaea-dev-orc-1.test.dataone.org/mn/v2/meta/testUpdateSystemMetadata_InvalidRequest_NullOriginMN20183614259101 ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.UpdateSystemMetadataTestImplementations.testUpdateSystemMetadata_InvalidRequest_NullOriginMN(UpdateSystemMetadataTestImplementations.java:588) at org.dataone.integration.it.testImplementations.UpdateSystemMetadataTestImplementations.testUpdateSystemMetadata_InvalidRequest_NullOriginMN(UpdateSystemMetadataTestImplementations.java:560) at org.dataone.integration.it.apiTests.MNStorageV2IT.testUpdateSystemMetadata_InvalidRequest_NullOriginMN(MNStorageV2IT.java:277) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69) testUpdateSystemMetadata_InvalidRequest_ModifiedSeriesId(org.dataone.integration.it.apiTests.MNStorageV2IT) Time elapsed: 7.487 sec <<< FAILURE! java.lang.AssertionError: Expected an InvalidRequest exception. Got: org.dataone.client.exception.ClientSideException: Unable to create test object!/500: Internal Server Error: parser for deserializing HTML not written yet. Providing stripped-down html message body starting next line: InvalidToken at /v2/object name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Exception Type: InvalidToken Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Exception Location: /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects, line 69 Python Executable: /var/local/dataone/gmn_venv/bin/python Python Version: 2.7.12 Python Path: ['/var/local/dataone/gmn_venv/lib/python2.7', '/var/local/dataone/gmn_venv/lib/python2.7/plat-x86_64-linux-gnu', '/var/local/dataone/gmn_venv/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/lib/python2.7/lib-old', '/var/local/dataone/gmn_venv/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn', '/var/local/dataone/gmn_venv/lib/python2.7/site-packages'] Server time: Mon, 5 Feb 2018 22:03:06 +0000 Traceback Switch to copy-and-paste view /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py in inner This decorator is automatically applied to all middleware to ensure that no middleware leaks an exception and that the next middleware in the stack can rely on getting a response instead of an exception. """ @wraps(get_response, assigned=available_attrs(get_response)) def inner(request): try: response = get_response(request) ... except Exception as exc: response = response_for_exception(request, exc) return response return inner ▶ Local vars Variable Value exc InvalidToken(errorCode="401", detailCode="0", description="Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" "", identifier="None", nodeId="None", traceInformation="None") get_response <bound method D1WSGIHandler._legacy_get_response of <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410>> request <D1WSGIRequest: POST '/mn/v2/object'> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _legacy_get_response # Apply request middleware for middleware_method in self._request_middleware: response = middleware_method(request) if response: break if response is None: response = self._get_response(request) ... return response ▶ Local vars Variable Value middleware_method <bound method RequestHandler.process_request of <d1_gmn.app.middleware.request_handler.RequestHandler object at 0x7f5401195350>> request <D1WSGIRequest: POST '/mn/v2/object'> response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py in _get_response resolver_match = resolver.resolve(request.path_info) callback, callback_args, callback_kwargs = resolver_match request.resolver_match = resolver_match # Apply view middleware for middleware_method in self._view_middleware: response = middleware_method(request, callback, callback_args, callback_kwargs) ... if response: break if response is None: wrapped_callback = self.make_view_atomic(callback) try: ▶ Local vars Variable Value callback <function dispatch_object_list at 0x7f53fb9d07d0> callback_args () callback_kwargs {} middleware_method <bound method ViewHandler.process_view of <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990>> request <D1WSGIRequest: POST '/mn/v2/object'> resolver <RegexURLResolver 'd1_gmn.app.urls' (None:None) ^/> resolver_match ResolverMatch(func=d1_gmn.app.views.external.dispatch_object_list, args=(), kwargs={}, url_name=dispatch_object_list, app_names=[], namespaces=[]) response None self <_mod_wsgi_f3e916cfa46d3529aa9d5eaf0de8f85e.D1WSGIHandler object at 0x7f5408327410> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_view logging.info( u'Calling view: func_name="{}", method="{}", args="{}", kwargs="{}", url="{}"' .format( view_func.__name__, request.method, view_args, view_kwargs, request.path_info ) ) # logging.debug(request.headers) self.process_session(request) ... def process_session(self, request): # For simulating an HTTPS connection with client authentication when # debugging via regular HTTP, two mechanisms are supported. (1) A full # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> view_args () view_func <function dispatch_object_list at 0x7f53fb9d07d0> view_kwargs {} /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in process_session # client side certificate can be included and (2) a list of subjects can be # included. Both use vendor specific extensions (HTTP headers that start # with the string "VENDOR_".) In some testing scenarios, it is convenient to # submit lists of subjects without having to generate certificates. In other # scenarios, it is desirable to simulate an HTTPS interaction as closely as # possible by providing a complete certificate. request.primary_subject_str, request.all_subjects_set = ( self.get_active_subject_set(request) ... ) def get_active_subject_set(self, request): """Get a set containing all subjects for which the current connection has been successfully authenticated """ ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py in get_active_subject_set request.META['SSL_CLIENT_CERT'] = \ self.pem_in_http_header_to_pem_in_string( request.META['HTTP_VENDOR_INCLUDE_CERTIFICATE']) # Add subjects from any provided certificate and JWT and store them in # the Django request obj. cert_primary_str, cert_equivalent_set = ( d1_gmn.app.middleware.session_cert.get_subjects(request) ... ) jwt_subject_list = ( d1_gmn.app.middleware.session_jwt. validate_jwt_and_get_subject_list(request) ) primary_subject_str = cert_primary_str ▶ Local vars Variable Value request <D1WSGIRequest: POST '/mn/v2/object'> self <d1_gmn.app.middleware.view_handler.ViewHandler object at 0x7f5400042990> /var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py in get_subjects """ if _is_certificate_provided(request): try: return get_authenticated_subjects(request.META['SSL_CLIENT_CERT']) except Exception as e: raise d1_common.types.exceptions.InvalidToken( 0, u'Error extracting session from certificate. error="{}"'.format(str(e)) ... ) else: return d1_common.const.SUBJECT_PUBLIC, set() def get_authenticated_subjects(cert_pem): ▶ Local vars Variable Value e InvalidToken(errorCode="401", detailCode="0", description="Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>""", identifier="None", nodeId="None", traceInformation="None") request <D1WSGIRequest: POST '/mn/v2/object'> Environment: Request Method: POST Request URL: https://pangaea-dev-orc-1.test.dataone.org/mn/v2/object Django Version: 1.11.6 Python Version: 2.7.12 Installed Applications: ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] Installed Middleware: ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') Traceback: File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 178. response = middleware_method(request, callback, callback_args, callback_kwargs) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_view 47. self.process_session(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in process_session 59. self.get_active_subject_set(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/view_handler.py" in get_active_subject_set 76. d1_gmn.app.middleware.session_cert.get_subjects(request) File "/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/middleware/session_cert.py" in get_subjects 69. u'Error extracting session from certificate. error="{}"'.format(str(e)) Exception Type: InvalidToken at /v2/object Exception Value: name: InvalidToken errorCode: 401 detailCode: 0 description: Error extracting session from certificate. error="name: InvalidToken errorCode: 401 detailCode: 0 description: Could not deserialize SubjectInfo. subject_info="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>", error="Unable to deserialize XML to PyXB. error="Invalid non-element content at <unknown>[1:113]" xml="<?xml version="1.0" encoding="UTF-8"?><d1:subjectInfo xmlns:d1="http://ns.dataone.org/service/types/v1">.<person>..<subject>CN=testRightsHolder,DC=dataone,DC=org</subject>..<givenName>testRightsHolder_givenName</givenName>..<familyName>testRightsHolder_familyName</familyName>.</person></d1:subjectInfo>"" " Request information USER [unable to retrieve the current user] GET No GET data POST Variable Value pid u'testUpdateSystemMetadata_InvalidRequest_ModifiedSeriesId_2018361436552' FILES Variable Value sysmeta <InMemoryUploadedFile: mmp.output.849637846100243222.tmp (application/octet-stream)> object <InMemoryUploadedFile: mmp.output.5596991448392972805.tmp (application/octet-stream)> COOKIES No cookie data META Variable Value CONTENT_LENGTH '19000' CONTENT_TYPE 'multipart/form-data; boundary=qIClyPugWJmYPpEV2-qvUpx0reyBjZjmbXNKkiYT' CONTEXT_DOCUMENT_ROOT '/var/www/html' CONTEXT_PREFIX '' DOCUMENT_ROOT '/var/www/html' GATEWAY_INTERFACE 'CGI/1.1' HTTP_ACCEPT_ENCODING 'gzip,deflate' HTTP_CONNECTION 'Keep-Alive' HTTP_HOST 'pangaea-dev-orc-1.test.dataone.org' HTTP_USER_AGENT 'Apache-HttpClient/4.3.6 (java 1.5)' HTTP_VIA '1.1 localhost (Apache-HttpClient/4.3.6 (cache))' PATH_INFO u'/v2/object' PATH_TRANSLATED '/var/www/html/v2/object' QUERY_STRING '' REMOTE_ADDR '64.106.40.19' REMOTE_PORT '41853' REQUEST_METHOD 'POST' REQUEST_SCHEME 'https' REQUEST_URI '/mn/v2/object' SCRIPT_FILENAME '/var/local/dataone/gmn_venv/lib/python2.7/site-packages/d1_gmn/wsgi.py' SCRIPT_NAME u'/mn' SERVER_ADDR '160.36.13.167' SERVER_ADMIN 'email@monicaihli.com' SERVER_NAME 'pangaea-dev-orc-1.test.dataone.org' SERVER_PORT '443' SERVER_PROTOCOL 'HTTP/1.1' SERVER_SIGNATURE '<address>Apache/2.4.18 (Ubuntu) Server at pangaea-dev-orc-1.test.dataone.org Port 443</address>\n' SERVER_SOFTWARE 'Apache/2.4.18 (Ubuntu)' SSL_CLIENT_CERT '-----BEGIN CERTIFICATE-----\nMIIG7DCCBNSgAwIBAgIJANoyY6KhLQC/MA0GCSqGSIb3DQEBBQUAMFUxEzARBgoJ\nkiaJk/IsZAEZFgNvcmcxFzAVBgoJkiaJk/IsZAEZFgdkYXRhb25lMSUwIwYDVQQD\nDBxEYXRhT05FIFRlc3QgSW50ZXJtZWRpYXRlIENBMB4XDTE1MDUyMDE4NTcyMloX\nDTE4MDUxOTE4NTcyMlowSTETMBEGCgmSJomT8ixkARkWA29yZzEXMBUGCgmSJomT\n8ixkARkWB2RhdGFvbmUxGTAXBgNVBAMMEHRlc3RSaWdodHNIb2xkZXIwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ/zMSGAS2UN3OfmwImsGOJTabIJ1g\nr0Yza+M1dlg4U9w4sw2AKymWRKhwWB5kcbGwqaU799a7+p3whBsy90ymw5wnxaWd\nXrPYU237PE3t3GoDUMm5ksMotcx7zyWD7X6ULTpK0mCUcts/P5Nyz9a5MY8ONyX9\n79iEza7yY8h2WUlPUcAiWC8mNmtWKnkbDMj3J8hftPsHVvQZS/sUV3qZXY+0sTc1\nnfyI3Ki+SVq4pbfXYC67mwCHfEAQkSvDsNHp20R9d53h3DI8iXtkElz1JQKUhYeB\nIRVqcgOsBXCJ3WmabhlOPPr3TQiGGEoT2PnbJ2rzRv9L+UEOgJs10FuBAgMBAAGj\nggLJMIICxTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy\nYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXWYvIzSx6xMxPwx6yADxN5TQNXsw\nHwYDVR0jBBgwFoAU7y7BJ2wqigmrbMNFfzv5V9UWqbMwggEBBgNVHR8EgfkwgfYw\nPKA6oDiGNmh0dHA6Ly9yZWxlYXNlcy5kYXRhb25lLm9yZy9jcmwvRGF0YU9ORVRl\nc3RJbnRfQ1JMLnBlbTA9oDugOYY3aHR0cDovL2NuLXVjc2ItMS5kYXRhb25lLm9y\nZy9jcmwvRGF0YU9ORVRlc3RJbnRfQ1JMLnBlbTA5oDegNYYzaHR0cDovL2NuLXVu\nbS0xLmRhdGFvbmUub3JnL2NybC9EYXRhT05FVGVzdF9DUkwucGVtMDygOqA4hjZo\ndHRwOi8vY24tb3JjLTEuZGF0YW9uZS5vcmcvY3JsL0RhdGFPTkVUZXN0SW50X0NS\nTC5wZW0wggFDBgorBgEEAYKRNgIBBIIBMwyCAS88P3htbCB2ZXJzaW9uPSIxLjAi\nIGVuY29kaW5nPSJVVEYtOCI/PjxkMTpzdWJqZWN0SW5mbyB4bWxuczpkMT0iaHR0\ncDovL25zLmRhdGFvbmUub3JnL3NlcnZpY2UvdHlwZXMvdjEiPi48cGVyc29uPi4u\nPHN1YmplY3Q+Q049dGVzdFJpZ2h0c0hvbGRlcixEQz1kYXRhb25lLERDPW9yZzwv\nc3ViamVjdD4uLjxnaXZlbk5hbWU+dGVzdFJpZ2h0c0hvbGRlcl9naXZlbk5hbWU8\nL2dpdmVuTmFtZT4uLjxmYW1pbHlOYW1lPnRlc3RSaWdodHNIb2xkZXJfZmFtaWx5\nTmFtZTwvZmFtaWx5TmFtZT4uPC9wZXJzb24+PC9kMTpzdWJqZWN0SW5mbz4wDQYJ\nKoZIhvcNAQEFBQADggIBALrwobQ7Vjwdn5Kxul6+JNz3RXs+8a+CnBZ011uA3M0g\n2Bkxm8ysKHttBctdyzKJ1BXub/WiKMKg5LgJIXGI34Xo4bl5/clrEl6hCsChs6XY\nmWA2YVPPoO/KvwdkOa1gnvU/+n6oxH/AxPBqG4+Zf/guLXs32LasPHGs5CN0rtRz\nwgDZpU1KCnIdCeV6gcGp+W18X1+OJ5eDxFsg0ZVSZzKCVOuL7Tp1aEnOwVfzQBzo\nHQ3mMPMaEt6mBR3c2U7PHtCSGty+R6IHNBiG6bjNO4aD/ZsZVG4FklfQMaClN5U7\nvaNCOS5UZ8H3HPu08/UeimouDx1E/+Y5mqwH2C6JMH+PGUf/ViSci4LuzPY9WYfx\nus42uW+k4PrJv/KrVqHn4rjniOdMFyBvBEuwYIrcE9vvgI3qMa9idWeDX7gKreeR\nj9OnBbVm19+xuU8mijY9mbMqjCzM/L73CxdVXsK6yQ2HjdBVwvmfsCd92Ikpkfvv\nComGDHE7I9/RO5RckZ95uS2AqaWboPHxGGJhSd8+ZfuVjnLBPkQd9mTcGFmzC+UM\n34b4lxZlQ2aEo6/ZWDcjh6afbSixVs9CJZejor6RB0Dg2LYqApYHcjQEVnzW/hF+\nP5tMTrd4EQj+tsyTFQgdj7NtoDY1EkgD0ohYPA9PF6t3R2w7hHVs5hyb/xY/55CV\n-----END CERTIFICATE-----\n' SSL_SERVER_CERT '-----BEGIN CERTIFICATE-----\nMIIFJzCCBA+gAwIBAgISBDWLQm4kWDEU0nlZbn/BZyG+MA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\nExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAxMTQyMzI5NDlaFw0x\nODA0MTQyMzI5NDlaMC0xKzApBgNVBAMTInBhbmdhZWEtZGV2LW9yYy0xLnRlc3Qu\nZGF0YW9uZS5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8VVzN\nfyPYsK+Tmewu8jGX5ErhZizzpFiSSR9V3OgUJ9dZfEwxf4Us7R8hEAh+fvgEAhOW\nhfDB0/GmdIpa275ta1KeI/oPJQ7DnGomlShnya5asu+Gp7jLVcVD8OftBY/mU4Dg\nC7+MsdCImtOU4t0vLCmpFgj5I7JtMpYO/eft6PAlMA30pqABJMgAYSoXUdfruXcm\nBHP7zjL0wJ9Jho3HsD6dYJ1nGVzvzuZGwI2TbI04yBrSKJkE4FMGm+R8/dQrWsM9\n77pzZ4WbvIWKdklo4EVhB/LHFt7Z3JDx37T334el7FdBA7+nBUIU6m3XaYvsciyd\n+G9GtQVMF4MaRF/NAgMBAAGjggIiMIICHjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0l\nBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYE\nFDuBqWP/0fm7M3w8Q4sU84zXCLGfMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZF\nZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3Au\naW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQu\naW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wLQYDVR0RBCYwJIIicGFuZ2FlYS1kZXYt\nb3JjLTEudGVzdC5kYXRhb25lLm9yZzCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB\n5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu\nY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5\nIG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5\nIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k\nIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3\nDQEBCwUAA4IBAQA4RL6VvVT1mwnpEo8r3LUTUhr/pB3IX3+0HEmPcW+0XVXKA2OB\nGH4N9fQGId0vBpPRFtSrKwsPMoudB82tvPadgcQSc2BKi96HVb7hd28B5z9J+/Tb\n4Y9g8xCIadwSPZ5kE9bdjgP+/AnesARsYdKpykc5r6h0onWm1SznH2MPUIEYE3wq\nLwUDvhdIoThBmF7I4MjXNmw9Aa+8ktqkDmTBAAl3x8xFSXmR+2iliA6fQHMUM4ci\n7tqTXjxOWYzAaLxvPqwli8G+26bZI7sjVMmzY7LuS4Pw9qo13FKYNqDtqMafvTSz\ni9nwPFfq38q8424Pty+4F/0QIc/GJviLHZUD\n-----END CERTIFICATE-----\n' SSL_TLS_SNI 'pangaea-dev-orc-1.test.dataone.org' apache.version (2, 4, 18) mod_wsgi.application_group '' mod_wsgi.callable_object 'application' mod_wsgi.daemon_connects '1' mod_wsgi.daemon_restarts '0' mod_wsgi.daemon_start '1517868186702947' mod_wsgi.enable_sendfile '0' mod_wsgi.handler_script '' mod_wsgi.input_chunked '0' mod_wsgi.listener_host '' mod_wsgi.listener_port '443' mod_wsgi.process_group 'gmn2' mod_wsgi.queue_start '1517868186702637' mod_wsgi.request_handler 'wsgi-script' mod_wsgi.request_start '1517868186702235' mod_wsgi.script_reloading '1' mod_wsgi.script_start '1517868186703013' mod_wsgi.version (4, 3, 0) wsgi.errors <mod_wsgi.Log object at 0x7f53fb9d6b70> wsgi.file_wrapper '' wsgi.input <mod_wsgi.Input object at 0x7f53fad63430> wsgi.multiprocess True wsgi.multithread True wsgi.run_once False wsgi.url_scheme 'https' wsgi.version (1, 0) Settings Using settings module d1_gmn.settings Setting Value ABSOLUTE_URL_OVERRIDES {} ADMINS (('My Name', 'my_address@my_email.tld'),) ALLOWED_HOSTS ['localhost', '127.0.0.1'] APPEND_SLASH True AUTHENTICATION_BACKENDS [u'django.contrib.auth.backends.ModelBackend'] AUTH_PASSWORD_VALIDATORS u'********************' AUTH_USER_MODEL u'auth.User' CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'TIMEOUT': 3600}} CACHE_MIDDLEWARE_ALIAS u'default' CACHE_MIDDLEWARE_KEY_PREFIX u'********************' CACHE_MIDDLEWARE_SECONDS 600 CLIENT_CERT_PATH '/var/local/dataone/certs/client/urn_node_mnTestPANGAEA-1.pem' CLIENT_CERT_PRIVATE_KEY_PATH u'********************' CSRF_COOKIE_AGE 31449600 CSRF_COOKIE_DOMAIN None CSRF_COOKIE_HTTPONLY False CSRF_COOKIE_NAME u'csrftoken' CSRF_COOKIE_PATH u'/' CSRF_COOKIE_SECURE False CSRF_FAILURE_VIEW u'django.views.csrf.csrf_failure' CSRF_HEADER_NAME u'HTTP_X_CSRFTOKEN' CSRF_TRUSTED_ORIGINS [] CSRF_USE_SESSIONS False DATABASES {'default': {'ATOMIC_REQUESTS': True, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': '', 'NAME': 'gmn2', 'OPTIONS': {}, 'PASSWORD': u'********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}} DATABASE_ROUTERS [] DATAONE_ROOT 'https://cn-sandbox.test.dataone.org/cn' DATAONE_TRUSTED_SUBJECTS set([]) DATA_UPLOAD_MAX_MEMORY_SIZE 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS 1000 DATETIME_FORMAT u'N j, Y, P' DATETIME_INPUT_FORMATS [u'%Y-%m-%d %H:%M:%S', u'%Y-%m-%d %H:%M:%S.%f', u'%Y-%m-%d %H:%M', u'%Y-%m-%d', u'%m/%d/%Y %H:%M:%S', u'%m/%d/%Y %H:%M:%S.%f', u'%m/%d/%Y %H:%M', u'%m/%d/%Y', u'%m/%d/%y %H:%M:%S', u'%m/%d/%y %H:%M:%S.%f', u'%m/%d/%y %H:%M', u'%m/%d/%y'] DATE_FORMAT u'N j, Y' DATE_INPUT_FORMATS [u'%Y-%m-%d', u'%m/%d/%Y', u'%m/%d/%y', u'%b %d %Y', u'%b %d, %Y', u'%d %b %Y', u'%d %b, %Y', u'%B %d %Y', u'%B %d, %Y', u'%d %B %Y', u'%d %B, %Y'] DEBUG True DEBUG_ALLOW_INTEGRATION_TESTS False DEBUG_ECHO_REQUEST False DEBUG_GMN True DEBUG_PROFILE_SQL False DEBUG_PROPAGATE_EXCEPTIONS False DEBUG_PYCHARM False DEBUG_PYCHARM_BIN 'pycharm.sh' DECIMAL_SEPARATOR u'.' DEFAULT_CHARSET u'utf-8' DEFAULT_CONTENT_TYPE u'text/html' DEFAULT_EXCEPTION_REPORTER_FILTER u'django.views.debug.SafeExceptionReporterFilter' DEFAULT_FILE_STORAGE u'django.core.files.storage.FileSystemStorage' DEFAULT_FROM_EMAIL u'webmaster@localhost' DEFAULT_INDEX_TABLESPACE u'' DEFAULT_TABLESPACE u'' DISALLOWED_USER_AGENTS [] EMAIL_BACKEND u'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST u'localhost' EMAIL_HOST_PASSWORD u'********************' EMAIL_HOST_USER u'' EMAIL_PORT 25 EMAIL_SSL_CERTFILE None EMAIL_SSL_KEYFILE u'********************' EMAIL_SUBJECT_PREFIX u'[Django] ' EMAIL_TIMEOUT None EMAIL_USE_LOCALTIME False EMAIL_USE_SSL False EMAIL_USE_TLS False FILE_CHARSET u'utf-8' FILE_UPLOAD_DIRECTORY_PERMISSIONS None FILE_UPLOAD_HANDLERS [u'django.core.files.uploadhandler.MemoryFileUploadHandler', u'django.core.files.uploadhandler.TemporaryFileUploadHandler'] FILE_UPLOAD_MAX_MEMORY_SIZE 2621440 FILE_UPLOAD_PERMISSIONS None FILE_UPLOAD_TEMP_DIR None FIRST_DAY_OF_WEEK 0 FIXTURE_DIRS [] FORCE_SCRIPT_NAME None FORMAT_MODULE_PATH None FORM_RENDERER u'django.forms.renderers.DjangoTemplates' IGNORABLE_404_URLS [] INSTALLED_APPS ['django.contrib.staticfiles', 'd1_gmn.app', 'd1_gmn.app.startup.GMNStartupChecks'] INTERNAL_IPS [] LANGUAGES [(u'af', u'Afrikaans'), (u'ar', u'Arabic'), (u'ast', u'Asturian'), (u'az', u'Azerbaijani'), (u'bg', u'Bulgarian'), (u'be', u'Belarusian'), (u'bn', u'Bengali'), (u'br', u'Breton'), (u'bs', u'Bosnian'), (u'ca', u'Catalan'), (u'cs', u'Czech'), (u'cy', u'Welsh'), (u'da', u'Danish'), (u'de', u'German'), (u'dsb', u'Lower Sorbian'), (u'el', u'Greek'), (u'en', u'English'), (u'en-au', u'Australian English'), (u'en-gb', u'British English'), (u'eo', u'Esperanto'), (u'es', u'Spanish'), (u'es-ar', u'Argentinian Spanish'), (u'es-co', u'Colombian Spanish'), (u'es-mx', u'Mexican Spanish'), (u'es-ni', u'Nicaraguan Spanish'), (u'es-ve', u'Venezuelan Spanish'), (u'et', u'Estonian'), (u'eu', u'Basque'), (u'fa', u'Persian'), (u'fi', u'Finnish'), (u'fr', u'French'), (u'fy', u'Frisian'), (u'ga', u'Irish'), (u'gd', u'Scottish Gaelic'), (u'gl', u'Galician'), (u'he', u'Hebrew'), (u'hi', u'Hindi'), (u'hr', u'Croatian'), (u'hsb', u'Upper Sorbian'), (u'hu', u'Hungarian'), (u'ia', u'Interlingua'), (u'id', u'Indonesian'), (u'io', u'Ido'), (u'is', u'Icelandic'), (u'it', u'Italian'), (u'ja', u'Japanese'), (u'ka', u'Georgian'), (u'kk', u'Kazakh'), (u'km', u'Khmer'), (u'kn', u'Kannada'), (u'ko', u'Korean'), (u'lb', u'Luxembourgish'), (u'lt', u'Lithuanian'), (u'lv', u'Latvian'), (u'mk', u'Macedonian'), (u'ml', u'Malayalam'), (u'mn', u'Mongolian'), (u'mr', u'Marathi'), (u'my', u'Burmese'), (u'nb', u'Norwegian Bokm\xe5l'), (u'ne', u'Nepali'), (u'nl', u'Dutch'), (u'nn', u'Norwegian Nynorsk'), (u'os', u'Ossetic'), (u'pa', u'Punjabi'), (u'pl', u'Polish'), (u'pt', u'Portuguese'), (u'pt-br', u'Brazilian Portuguese'), (u'ro', u'Romanian'), (u'ru', u'Russian'), (u'sk', u'Slovak'), (u'sl', u'Slovenian'), (u'sq', u'Albanian'), (u'sr', u'Serbian'), (u'sr-latn', u'Serbian Latin'), (u'sv', u'Swedish'), (u'sw', u'Swahili'), (u'ta', u'Tamil'), (u'te', u'Telugu'), (u'th', u'Thai'), (u'tr', u'Turkish'), (u'tt', u'Tatar'), (u'udm', u'Udmurt'), (u'uk', u'Ukrainian'), (u'ur', u'Urdu'), (u'vi', u'Vietnamese'), (u'zh-hans', u'Simplified Chinese'), (u'zh-hant', u'Traditional Chinese')] LANGUAGES_BIDI [u'he', u'ar', u'fa', u'ur'] LANGUAGE_CODE 'en-us' LANGUAGE_COOKIE_AGE None LANGUAGE_COOKIE_DOMAIN None LANGUAGE_COOKIE_NAME u'django_language' LANGUAGE_COOKIE_PATH u'/' LOCALE_PATHS [] LOGGING {'disable_existing_loggers': True, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s %(levelname)-8s %(name)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'file': {'class': 'logging.FileHandler', 'filename': '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': True}, 'django': {'handlers': ['file'], 'level': 'DEBUG', 'propagate': False}, 'django.db.backends': {'handlers': ['null'], 'level': 'WARNING', 'propagate': False}}, 'version': 1} LOGGING_CONFIG u'logging.config.dictConfig' LOGIN_REDIRECT_URL u'/accounts/profile/' LOGIN_URL u'/accounts/login/' LOGOUT_REDIRECT_URL None LOG_LEVEL 'DEBUG' LOG_PATH '/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/gmn.log' MANAGERS [] MAX_XML_DOCUMENT_SIZE 10485760 MEDIA_ROOT u'' MEDIA_URL '' MESSAGE_STORAGE u'django.contrib.messages.storage.fallback.FallbackStorage' MIDDLEWARE None MIDDLEWARE_CLASSES ('d1_gmn.app.middleware.request_handler.RequestHandler', 'd1_gmn.app.middleware.exception_handler.ExceptionHandler', 'd1_gmn.app.middleware.response_handler.ResponseHandler', 'd1_gmn.app.middleware.profiling_handler.ProfilingHandler', 'd1_gmn.app.middleware.view_handler.ViewHandler') MIGRATION_MODULES {} MONITOR True MONTH_DAY_FORMAT u'F j' NODE_BASEURL 'https://pangaea-dev-orc-1.test.dataone.org/mn' NODE_CONTACT_SUBJECT 'CN=M I A213106, O=Google, C=US, DC=cilogon, DC=org' NODE_DESCRIPTION 'PANGAEA is an Open Access library aimed at archiving, publishing and distributing georeferenced data from earth system research.' NODE_IDENTIFIER 'urn:node:mnTestPANGAEA' NODE_NAME 'Pangaea' NODE_REPLICATE False NODE_STATE 'up' NODE_SUBJECT 'CN=urn:node:mnTestPANGAEA,DC=dataone,DC=org' NODE_SYNCHRONIZE True NODE_SYNC_SCHEDULE_HOUR '*' NODE_SYNC_SCHEDULE_MINUTE '42' NODE_SYNC_SCHEDULE_MONTH '*' NODE_SYNC_SCHEDULE_MONTHDAY '*' NODE_SYNC_SCHEDULE_SECOND '0' NODE_SYNC_SCHEDULE_WEEKDAY '?' NODE_SYNC_SCHEDULE_YEAR '*' NUMBER_GROUPING 0 NUM_CHUNK_BYTES 1048576 OBJECT_STORE_PATH '/var/local/dataone/gmn_object_store' PASSWORD_HASHERS u'********************' PASSWORD_RESET_TIMEOUT_DAYS u'********************' PREPEND_WWW False PROXY_MODE_BASIC_AUTH_ENABLED False PROXY_MODE_BASIC_AUTH_PASSWORD u'********************' PROXY_MODE_BASIC_AUTH_USERNAME '' PROXY_MODE_STREAM_TIMEOUT 30 PUBLIC_LOG_RECORDS True PUBLIC_OBJECT_LIST True REPLICATION_ALLOWEDNODE () REPLICATION_ALLOWEDOBJECTFORMAT () REPLICATION_ALLOW_ONLY_PUBLIC False REPLICATION_MAXOBJECTSIZE -1 REPLICATION_MAX_ATTEMPTS 24 REPLICATION_SPACEALLOCATED 10737418240 REQUIRE_WHITELIST_FOR_UPDATE True ROOT_URLCONF 'd1_gmn.app.urls' SECRET_KEY u'********************' SECURE_BROWSER_XSS_FILTER False SECURE_CONTENT_TYPE_NOSNIFF False SECURE_HSTS_INCLUDE_SUBDOMAINS False SECURE_HSTS_PRELOAD False SECURE_HSTS_SECONDS 0 SECURE_PROXY_SSL_HEADER None SECURE_REDIRECT_EXEMPT [] SECURE_SSL_HOST None SECURE_SSL_REDIRECT False SERVER_EMAIL u'root@localhost' SESSION_CACHE_ALIAS u'default' SESSION_COOKIE_AGE 1209600 SESSION_COOKIE_DOMAIN None SESSION_COOKIE_HTTPONLY True SESSION_COOKIE_NAME u'sessionid' SESSION_COOKIE_PATH u'/' SESSION_COOKIE_SECURE True SESSION_ENGINE u'django.contrib.sessions.backends.db' SESSION_EXPIRE_AT_BROWSER_CLOSE False SESSION_FILE_PATH None SESSION_SAVE_EVERY_REQUEST False SESSION_SERIALIZER u'django.contrib.sessions.serializers.JSONSerializer' SETTINGS_MODULE 'd1_gmn.settings' SHORT_DATETIME_FORMAT u'm/d/Y P' SHORT_DATE_FORMAT u'm/d/Y' SIGNING_BACKEND u'django.core.signing.TimestampSigner' SILENCED_SYSTEM_CHECKS [] STAND_ALONE False STATICFILES_DIRS [] STATICFILES_FINDERS [u'django.contrib.staticfiles.finders.FileSystemFinder', u'django.contrib.staticfiles.finders.AppDirectoriesFinder'] STATICFILES_STORAGE u'django.contrib.staticfiles.storage.StaticFilesStorage' STATIC_ROOT None STATIC_URL '/static/' SYSMETA_REFRESH_MAX_ATTEMPTS 24 TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/var/local/dataone/gmn_venv/local/lib/python2.7/site-packages/d1_gmn/app/templates'], 'OPTIONS': {'context_processors': ['django.contrib.auth.context_processors.auth', 'django.template.context_processors.debug', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages'], 'loaders': ['django.template.loaders.filesystem.Loader']}}] TEST_NON_SERIALIZED_APPS [] TEST_RUNNER u'django.test.runner.DiscoverRunner' THOUSAND_SEPARATOR u',' TIME_FORMAT u'P' TIME_INPUT_FORMATS [u'%H:%M:%S', u'%H:%M:%S.%f', u'%H:%M'] TIME_ZONE 'UTC' TRUST_CLIENT_AUTHORITATIVEMEMBERNODE True TRUST_CLIENT_DATESYSMETADATAMODIFIED True TRUST_CLIENT_DATEUPLOADED True TRUST_CLIENT_ORIGINMEMBERNODE True TRUST_CLIENT_SERIALVERSION False TRUST_CLIENT_SUBMITTER True USE_ETAGS False USE_I18N False USE_L10N False USE_THOUSAND_SEPARATOR False USE_TZ False USE_X_FORWARDED_HOST False USE_X_FORWARDED_PORT False WSGI_APPLICATION None X_FRAME_OPTIONS u'SAMEORIGIN' YEAR_MONTH_FORMAT u'F Y' You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard page generated by the handler for this status code. [for host https://pangaea-dev-orc-1.test.dataone.org/mn/v2 ] at org.junit.Assert.fail(Assert.java:91) at org.dataone.integration.ContextAwareTestCaseDataone$5.call(ContextAwareTestCaseDataone.java:1825) at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:70) at org.dataone.integration.ContextAwareTestCaseDataone.handleFail(ContextAwareTestCaseDataone.java:1820) at org.dataone.integration.it.ContextAwareAdapter.handleFail(ContextAwareAdapter.java:100) at org.dataone.integration.it.testImplementations.UpdateSystemMetadataTestImplementations.testUpdateSystemMetadata_InvalidRequest_ModifiedSeriesId(UpdateSystemMetadataTestImplementations.java:651) at org.dataone.integration.it.testImplementations.UpdateSystemMetadataTestImplementations.testUpdateSystemMetadata_InvalidRequest_ModifiedSeriesId(UpdateSystemMetadataTestImplementations.java:603) at org.dataone.integration.it.apiTests.MNStorageV2IT.testUpdateSystemMetadata_InvalidRequest_ModifiedSeriesId(MNStorageV2IT.java:283) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.rules.Verifier$1.evaluate(Verifier.java:34) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53) at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:119) at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103) at com.sun.proxy.$Proxy0.invoke(Unknown Source) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:150) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:91) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69)