zoomzoom
Guru
- Joined
- Sep 6, 2015
- Messages
- 677
There's numerous things broken in the CrashPlan plugin on FreeNAS 11.
- Setting up a standard jail to install CrashPlan into isn't an option, as the few guides I've found that detail what needs to be installed all use the linux_base-f10 port, which has reported vulnerabilities (from around mid 2016) that haven't been patched.
- Without the below symlinks, the WebGUI will throw errors regarding libintl.so.9, as will the jail if any commands are issued regarding bash or starting the CrashPlan service.
- WebGUI error:
Code:ClientException('DHCPREQUEST on epair0b to 255.255.255.255 port 67\nDHCPACK from 192.168.200.65\nbound to 192.168.200.110 -- renewal in 41805 seconds.\nShared object "libintl.so.9" not found, required by "python2.7"\n', {'class': 'warden_exception', 'frames': [{'filename': '/usr/local/lib/python3.6/site-packages/middlewared/main.py', 'lineno': 176, 'method': 'call_method', 'line': ' self.send_error(message, str(e), sys.exc_info())\n', 'argspec': ['self', 'message'], 'locals': {'e': 'warden_exception(\'DHCPREQUEST on epair0b to 255.255.255.255 port 67\\nDHCPACK from 192.168.200.65\\nbound to 192.168.200.110 -- renewal in 41805 seconds.\\nShared object "libintl.so.9" not found, required by "python2.7"\\n\',)', 'message': "{'msg': 'method', 'method': 'notifier.warden', 'id': '7a97fcf6-d339-4d3c-9b4c-c3913a732dee', 'params': ['start', None, {'jail': 'cplan'}]}", 'self': ''}}, {'filename': '/usr/local/lib/python3.6/site-packages/middlewared/main.py', 'lineno': 581, 'method': 'call_method', 'line': " return self._call(message['method'], methodobj, params, app=app)\n", 'argspec': ['self', 'app', 'message'], 'locals': {'methodobj': '>', 'method_name': "'warden'", 'service': "'notifier'", 'params': "['start', None, {'jail': 'cplan'}]", 'message': "{'msg': 'method', 'method': 'notifier.warden', 'id': '7a97fcf6-d339-4d3c-9b4c-c3913a732dee', 'params': ['start', None, {'jail': 'cplan'}]}", 'app': '', 'self': ''}}, {'filename': '/usr/local/lib/python3.6/site-packages/middlewared/main.py', 'lineno': 569, 'method': '_call', 'line': ' return methodobj(*args)\n', 'argspec': ['self', 'name', 'methodobj', 'params', 'app'], 'locals': {'job': 'None', 'job_options': 'None', 'args': "['start', None, {'jail': 'cplan'}]", 'app': '', 'params': "['start', None, {'jail': 'cplan'}]", 'methodobj': '>', 'name': "'notifier.warden'", 'self': ''}}, {'filename': '/usr/local/lib/python3.6/site-packages/middlewared/plugins/notifier.py', 'lineno': 99, 'method': 'warden', 'line': ' return method(*params, **kwargs)\n', 'argspec': ['self', 'method', 'params', 'kwargs'], 'locals': {'kwargs': "{'jail': 'cplan'}", 'params': '[]', 'method': '>', 'self': ''}}, {'filename': '/usr/local/www/freenasUI/common/warden.py', 'lineno': 1138, 'method': 'start', 'line': ' }, **kwargs))\n', 'argspec': ['self', 'flags'], 'keywordspec': 'kwargs', 'locals': {'kwargs': "{'jail': 'cplan'}", 'flags': '', 'self': ''}}, {'filename': '/usr/local/www/freenasUI/common/warden.py', 'lineno': 1069, 'method': '__call', 'line': ' raise\n', 'argspec': ['self', 'obj'], 'locals': {'tmp': 'None', 'obj': '', 'self': ''}}, {'filename': '/usr/local/www/freenasUI/common/warden.py', 'lineno': 461, 'method': 'run', 'line': ' raise warden_exception(msg)\n', 'argspec': ['self', 'jail', 'jid'], 'locals': {'msg': '\'DHCPREQUEST on epair0b to 255.255.255.255 port 67\\nDHCPACK from 192.168.200.65\\nbound to 192.168.200.110 -- renewal in 41805 seconds.\\nShared object "libintl.so.9" not found, required by "python2.7"\\n\'', 'pobj': '', 'cmd': '"/usr/local/bin/warden start \'cplan\'"', 'jid': '0', 'jail': 'False', 'self': ''}}], 'formatted': 'Traceback (most recent call last):\n File "/usr/local/lib/python3.6/site-packages/middlewared/main.py", line 163, in call_method\n result = self.middleware.call_method(self, message)\n File "/usr/local/lib/python3.6/site-packages/middlewared/main.py", line 581, in call_method\n return self._call(message[\'method\'], methodobj, params, app=app)\n File "/usr/local/lib/python3.6/site-packages/middlewared/main.py", line 569, in _call\n return methodobj(*args)\n File "/usr/local/lib/python3.6/site-packages/middlewared/plugins/notifier.py", line 99, in warden\n return method(*params, **kwargs)\n File "/usr/local/www/freenasUI/common/warden.py", line 1138, in start\n }, **kwargs))\n File "/usr/local/www/freenasUI/common/warden.py", line 1066, in __call\n tmp = obj.run()\n File "/usr/local/www/freenasUI/common/warden.py", line 461, in run\n raise warden_exception(msg)\nfreenasUI.common.warden.warden_exception: DHCPREQUEST on epair0b to 255.255.255.255 port 67\nDHCPACK from 192.168.200.65\nbound to 192.168.200.110 -- renewal in 41805 seconds.\nShared object "libintl.so.9" not found, required by "python2.7"\n\n'})
- Could this have to do with the incorrect python shebang that broke sendmail up until a few weeks ago?
- Jail error:
Code:# CrashPlan fails to start: # Scripts called when Java EULA is accepted have not been ran #---------------------------------------- [root@crashplan] /# service crashplan start /usr/local/etc/rc.d/crashplan: WARNING: $crashplan_enable is not set properly - see rc.conf(5). Cannot 'start' crashplan. Set crashplan_enable to YES in /etc/rc.conf or use 'onestart' instead of 'start'. # Add crashplan_enable="YES" to rc.conf #---------------------------------------- [root@crashplan] /# cat >> /etc/rc.conf << EOF ? crashplan_enable="YES" ? EOF # Start crashplan #---------------------------------------- [root@crashplan] /# service crashplan start Shared object "libintl.so.9" not found, required by "bash"
- WebGUI error:
- Missing symlink for: /usr/local/lib/libintl.so.9, which must be linked to /usr/pbi/crashplan-amd64/lib/libintl.so.9
- Issue:
ln -s /usr/pbi/crashplan-amd64/lib/libintl.so.9 /usr/local/lib/libintl.so.9
- Issue:
- Missing symlink for: /usr/local/lib/libiconv.so.3, which must be linked to /usr/pbi/crashplan-amd64/lib/libiconv.so.3
- Issue:
ln -s /usr/pbi/crashplan-amd64/lib/libiconv.so.3 /usr/local/lib/libiconv.so.3
- Issue:
- Missing symlink for: /lib/libxml2.so.2, which must be linked to /usr/local/lib/libxml2.so.2.9.4
- Issue:
ln -s /usr/local/lib/libxml2.so.2.9.4 /lib/libxml2.so.2
- CrashPlan will show up in the NavTree without this, however the error below appears to be the same with and without this symlink.
- According to multiple posts on the FreeBSD forums, this symlink is always mentioned with the above two.
- CrashPlan will show up in the NavTree without this, however the error below appears to be the same with and without this symlink.
- Issue:
Code:
OperationalError at /plugins/crashplan/18/open/ no such table: freenas_crashplan Request Method: GET Request URL: https://192.168.200.100/plugins/crashplan/18/open/ Django Version: 1.6.1 Python Executable: /usr/pbi/crashplan-amd64/bin/python2.7 Python Version: 2.7.6 Python Path: ['/usr/pbi/crashplan-amd64/crashplanUI/../lib/python2.7/site-packages', '/usr/pbi/crashplan-amd64/lib/python2.7/site-packages', '/usr/pbi/crashplan-amd64', '/usr/pbi/crashplan-amd64/lib/python2.7/site-packages/flup-1.0.2-py2.7.egg', '/usr/pbi/crashplan-amd64/lib/python2.7/site-packages/python_daemon-1.5.5-py2.7.egg', '/usr/pbi/crashplan-amd64/lib/python2.7/site-packages/httplib2-0.8-py2.7.egg', '/usr/pbi/crashplan-amd64/lib/python2.7/site-packages/oauth2-1.5.211-py2.7.egg', '/usr/pbi/crashplan-amd64/lib/python27.zip', '/usr/pbi/crashplan-amd64/lib/python2.7', '/usr/pbi/crashplan-amd64/lib/python2.7/plat-freebsd9', '/usr/pbi/crashplan-amd64/lib/python2.7/lib-tk', '/usr/pbi/crashplan-amd64/lib/python2.7/lib-old', '/usr/pbi/crashplan-amd64/lib/python2.7/lib-dynload', '/usr/pbi/crashplan-amd64/lib/python2.7/site-packages'] Server time: Thu, 4 May 2017 10:24:44 -0500 Installed Applications: ('django.contrib.contenttypes', 'django.contrib.staticfiles', 'crashplanUI.freenas', 'south') Installed Middleware: ('django.middleware.common.CommonMiddleware',) Traceback: File "/usr/pbi/crashplan-amd64/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response 114. response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/usr/pbi/crashplan-amd64/crashplanUI/freenas/views.py" in open_view 338. crashplan = models.Crashplan.objects.order_by('-id')[0] File "/usr/pbi/crashplan-amd64/lib/python2.7/site-packages/django/db/models/query.py" in __getitem__ 132. return list(qs)[0] File "/usr/pbi/crashplan-amd64/lib/python2.7/site-packages/django/db/models/query.py" in __iter__ 96. self._fetch_all() File "/usr/pbi/crashplan-amd64/lib/python2.7/site-packages/django/db/models/query.py" in _fetch_all 854. self._result_cache = list(self.iterator()) File "/usr/pbi/crashplan-amd64/lib/python2.7/site-packages/django/db/models/query.py" in iterator 220. for row in compiler.results_iter(): File "/usr/pbi/crashplan-amd64/lib/python2.7/site-packages/django/db/models/sql/compiler.py" in results_iter 710. for rows in self.execute_sql(MULTI): File "/usr/pbi/crashplan-amd64/lib/python2.7/site-packages/django/db/models/sql/compiler.py" in execute_sql 781. cursor.execute(sql, params) File "/usr/pbi/crashplan-amd64/lib/python2.7/site-packages/django/db/backends/util.py" in execute 69. return super(CursorDebugWrapper, self).execute(sql, params) File "/usr/pbi/crashplan-amd64/lib/python2.7/site-packages/django/db/backends/util.py" in execute 53. return self.cursor.execute(sql, params) File "/usr/pbi/crashplan-amd64/lib/python2.7/site-packages/django/db/utils.py" in __exit__ 99. six.reraise(dj_exc_type, dj_exc_value, traceback) File "/usr/pbi/crashplan-amd64/lib/python2.7/site-packages/django/db/backends/util.py" in execute 53. return self.cursor.execute(sql, params) File "/usr/pbi/crashplan-amd64/lib/python2.7/site-packages/django/db/backends/sqlite3/base.py" in execute 450. return Database.Cursor.execute(self, query, params) Exception Type: OperationalError at /plugins/crashplan/18/open/ Exception Value: no such table: freenas_crashplan Request information: GET: No GET data POST: No POST data FILES: No FILES data COOKIES: csrftoken = '54JseWUCvLy1IAXtAw0Y5LdR8ocJutRztEKS0FOZ0akjBhYVEtq6tn1pP24WQIaZ' sessionid = 'grecj03gvdktxya5jn7t2bac2esah2ew' fntreeSaveStateCookie = 'root%2Croot%2F298%2Croot%2F298%2F304%2Croot%2F286%2Croot%2F301%2Croot%2F309%2Croot%2F313%2Croot%2F305' META: wsgi.multiprocess = False HTTP_REFERER = 'https://192.168.200.100/' SERVER_SOFTWARE = 'nginx/1.10.1' SCRIPT_NAME = u'' REQUEST_METHOD = 'GET' PATH_INFO = u'/plugins/crashplan/18/open/' SERVER_PROTOCOL = 'HTTP/2.0' QUERY_STRING = '' CONTENT_LENGTH = '0' HTTP_USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.36 Safari/537.36' HTTP_COOKIE = 'sessionid=grecj03gvdktxya5jn7t2bac2esah2ew; csrftoken=54JseWUCvLy1IAXtAw0Y5LdR8ocJutRztEKS0FOZ0akjBhYVEtq6tn1pP24WQIaZ; fntreeSaveStateCookie=root%2Croot%2F298%2Croot%2F298%2F304%2Croot%2F286%2Croot%2F301%2Croot%2F309%2Croot%2F313%2Croot%2F305' SERVER_NAME = 'localhost' REMOTE_ADDR = '192.168.200.15' wsgi.url_scheme = 'https' SERVER_PORT = '443' SERVER_ADDR = '192.168.200.100' DOCUMENT_ROOT = '/usr/local/etc/nginx/html' HTTP_X_REQUESTED_WITH = 'XMLHttpRequest' DOCUMENT_URI = '/plugins/crashplan/18/open/' wsgi.input = HTTP_DNT = '1' HTTP_HOST = '192.168.200.100' HTTPS = 'on' wsgi.multithread = True HTTP_CONTENT_TYPE = 'application/x-www-form-urlencoded' REQUEST_URI = '/plugins/crashplan/18/open/' HTTP_ACCEPT = '*/*' wsgi.version = wsgi.run_once = False wsgi.errors = REMOTE_PORT = '54168' HTTP_ACCEPT_LANGUAGE = 'en-US,en;q=0.8' CONTENT_TYPE = 'application/x-www-form-urlencoded' HTTP_ACCEPT_ENCODING = 'gzip, deflate, br' Settings: Using settings module crashplanUI.settings USE_L10N = True USE_THOUSAND_SEPARATOR = False CSRF_COOKIE_SECURE = False LANGUAGE_CODE = 'en-us' ROOT_URLCONF = 'crashplanUI.urls' MANAGERS = DEFAULT_CHARSET = 'utf-8' SESSION_SERIALIZER = 'django.contrib.sessions.serializers.JSONSerializer' STATIC_ROOT = '' ALLOWED_HOSTS = [] MESSAGE_STORAGE = 'django.contrib.messages.storage.fallback.FallbackStorage' EMAIL_SUBJECT_PREFIX = '[Django] ' FILE_UPLOAD_PERMISSIONS = None STATICFILES_FINDERS = SESSION_CACHE_ALIAS = 'default' SESSION_COOKIE_DOMAIN = None SESSION_COOKIE_NAME = 'sessionid' ADMIN_FOR = TIME_INPUT_FORMATS = DATABASES = {'default': {'ENGINE': 'django.db.backends.sqlite3', 'AUTOCOMMIT': True, 'ATOMIC_REQUESTS': False, 'NAME': '/usr/pbi/crashplan-amd64/crashplanUI/crashplan.db', 'TEST_MIRROR': None, 'OPTIONS': {}, 'CONN_MAX_AGE': 0, 'TIME_ZONE': None, 'TEST_COLLATION': None, 'TEST_CHARSET': None, 'HOST': '', 'USER': '', 'TEST_NAME': None, 'PASSWORD': u'********************', 'PORT': ''}} SERVER_EMAIL = 'root@localhost' FILE_UPLOAD_HANDLERS = DEFAULT_CONTENT_TYPE = 'text/html' APPEND_SLASH = True FIRST_DAY_OF_WEEK = 0 DATABASE_ROUTERS = [] YEAR_MONTH_FORMAT = 'F Y' STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.StaticFilesStorage' CACHES = {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}} SESSION_COOKIE_PATH = '/' MIDDLEWARE_CLASSES = 'django.middleware.common.CommonMiddleware' USE_I18N = True THOUSAND_SEPARATOR = ',' SECRET_KEY = u'********************' LANGUAGE_COOKIE_NAME = 'django_language' DEFAULT_INDEX_TABLESPACE = '' TRANSACTIONS_MANAGED = False LOGGING_CONFIG = 'django.utils.log.dictConfig' SEND_BROKEN_LINK_EMAILS = False TEMPLATE_LOADERS = WSGI_APPLICATION = None TEMPLATE_DEBUG = True X_FRAME_OPTIONS = 'SAMEORIGIN' AUTHENTICATION_BACKENDS = 'django.contrib.auth.backends.ModelBackend' FORCE_SCRIPT_NAME = '' USE_X_FORWARDED_HOST = False SIGNING_BACKEND = 'django.core.signing.TimestampSigner' SESSION_COOKIE_SECURE = False CSRF_COOKIE_DOMAIN = None FILE_CHARSET = 'utf-8' DEBUG = True SESSION_FILE_PATH = None DEFAULT_FILE_STORAGE = 'django.core.files.storage.FileSystemStorage' INSTALLED_APPS = LANGUAGES = COMMENTS_ALLOW_PROFANITIES = False STATICFILES_DIRS = PREPEND_WWW = False SECURE_PROXY_SSL_HEADER = None SESSION_COOKIE_HTTPONLY = True DEBUG_PROPAGATE_EXCEPTIONS = False MONTH_DAY_FORMAT = 'F j' LOGIN_URL = '/accounts/login/' SESSION_EXPIRE_AT_BROWSER_CLOSE = False TIME_FORMAT = 'P' AUTH_USER_MODEL = 'auth.User' DATE_INPUT_FORMATS = CSRF_COOKIE_NAME = 'csrftoken' EMAIL_HOST_PASSWORD = u'********************' PASSWORD_RESET_TIMEOUT_DAYS = u'********************' CACHE_MIDDLEWARE_ALIAS = 'default' SESSION_SAVE_EVERY_REQUEST = False ADMIN_MEDIA_PREFIX = '/static/admin/' NUMBER_GROUPING = 0 SESSION_ENGINE = 'django.contrib.sessions.backends.db' CSRF_FAILURE_VIEW = 'django.views.csrf.csrf_failure' CSRF_COOKIE_PATH = '/' LOGIN_REDIRECT_URL = '/accounts/profile/' TEMPLATE_STRING_IF_INVALID = '' DECIMAL_SEPARATOR = '.' IGNORABLE_404_URLS = LOCALE_PATHS = HERE = '/usr/pbi/crashplan-amd64/crashplanUI' LOGOUT_URL = '/accounts/logout/' EMAIL_USE_TLS = False FIXTURE_DIRS = EMAIL_HOST = 'localhost' DATE_FORMAT = 'N j, Y' MEDIA_ROOT = '' DEFAULT_EXCEPTION_REPORTER_FILTER = 'django.views.debug.SafeExceptionReporterFilter' ADMINS = FORMAT_MODULE_PATH = None DEFAULT_FROM_EMAIL = 'webmaster@localhost' MEDIA_URL = '' DATETIME_FORMAT = 'N j, Y, P' TEMPLATE_DIRS = SITE_ID = 1 DISALLOWED_USER_AGENTS = ALLOWED_INCLUDE_ROOTS = LOGGING = {'loggers': {'django.request': {'handlers': ['mail_admins'], 'propagate': True, 'level': 'ERROR'}}, 'version': 1, 'disable_existing_loggers': False, 'handlers': {'mail_admins': {'class': 'django.utils.log.AdminEmailHandler', 'filters': [], 'level': 'ERROR'}}} SHORT_DATE_FORMAT = 'm/d/Y' TEST_RUNNER = 'django.test.runner.DiscoverRunner' CACHE_MIDDLEWARE_KEY_PREFIX = u'********************' TIME_ZONE = None FILE_UPLOAD_MAX_MEMORY_SIZE = 2621440 EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' DEFAULT_TABLESPACE = '' TEMPLATE_CONTEXT_PROCESSORS = SESSION_COOKIE_AGE = 1209600 SETTINGS_MODULE = 'crashplanUI.settings' USE_ETAGS = False LANGUAGES_BIDI = FILE_UPLOAD_TEMP_DIR = None INTERNAL_IPS = STATIC_URL = '/static/' EMAIL_PORT = 25 USE_TZ = False SHORT_DATETIME_FORMAT = 'm/d/Y P' PASSWORD_HASHERS = u'********************' ABSOLUTE_URL_OVERRIDES = {} CACHE_MIDDLEWARE_SECONDS = 600 CSRF_COOKIE_HTTPONLY = False DATETIME_INPUT_FORMATS = EMAIL_HOST_USER = '' PROFANITIES_LIST = u'********************' 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 500 page.
- Could this have to do with the incorrect python shebang that broke sendmail up until a few weeks ago?
Last edited: