[GH-ISSUE #1098] Unable to add new relay domain post amavis extension installation #917

Closed
opened 2026-02-27 11:14:15 +03:00 by kerem · 3 comments
Owner

Originally created by @lazynooblet on GitHub (Apr 15, 2017).
Original GitHub issue: https://github.com/modoboa/modoboa/issues/1098

Impacted versions

  • Modoboa: 1.7.2
  • installer used: No
  • Webserver: Apache

Steps to reproduce

Create new relay domain

Current behavior

Stacktrace

Expected behavior

New relay domain

Notes

I have added the amavis extension, created tables, setup amavis. Mails are being placed into SQL correctly by amavis.
I now want to add a domain to the modoboa system, however I get stacktrace as follows (only visible in browser console, no error in browser content area)

IntegrityError at /admin/domains/new/
(1048, "Column 'virus_lover' cannot be null")

Request Method: POST
Request URL: https://server/modoboa/admin/domains/new/
Django Version: 1.10.7
Python Executable: /usr/bin/python
Python Version: 2.7.9
Python Path: ['/usr/local/share/modoboa/instance', '/usr/local/share/modoboa/env/lib/python2.7/site-packages', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/lib/python2.7/dist-packages', '/usr/lib/pymodules/python2.7']
Server time: Sat, 15 Apr 2017 10:21:45 +0000
Installed Applications:
('django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.sites',
 'django.contrib.staticfiles',
 'reversion',
 'ckeditor',
 'ckeditor_uploader',
 'rest_framework',
 'rest_framework.authtoken',
 'modoboa',
 'modoboa.core',
 'modoboa.lib',
 'modoboa.admin',
 'modoboa.relaydomains',
 'modoboa.limits',
 'modoboa.parameters',
 'modoboa_amavis')
Installed Middleware:
('x_forwarded_for.middleware.XForwardedForMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.locale.LocaleMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware',
 'modoboa.core.middleware.LocalConfigMiddleware',
 'modoboa.lib.middleware.AjaxLoginRedirect',
 'modoboa.lib.middleware.CommonExceptionCatcher',
 'modoboa.lib.middleware.RequestCatcherMiddleware')


Traceback:  

File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner
  42.             response = get_response(request)

File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response
  249.             response = self._get_response(request)

File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response
  187.                 response = self.process_exception_by_middleware(e, request)

File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response
  185.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/utils/decorators.py" in inner
  185.                     return func(*args, **kwargs)

File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/utils/decorators.py" in inner
  185.                     return func(*args, **kwargs)

File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/contrib/auth/decorators.py" in _wrapped_view
  23.                 return view_func(request, *args, **kwargs)

File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/contrib/auth/decorators.py" in _wrapped_view
  23.                 return view_func(request, *args, **kwargs)

File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/reversion/revisions.py" in do_revision_context
  315.                 return func(*args, **kwargs)

File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/modoboa/admin/views/domain.py" in newdomain
  115.     return DomainWizard(request).process()

File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/modoboa/lib/form_utils.py" in process
  170.                 return self.next_step()

File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/modoboa/lib/form_utils.py" in next_step
  155.             return self.done()

File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/modoboa/admin/forms/domain.py" in done
  386.         domain = genform.save(self.request.user)

File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/modoboa/admin/forms/domain.py" in save
  155.         d.save()

File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/modoboa/admin/models/domain.py" in save
  217.         super(Domain, self).save(*args, **kwargs)

File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/modoboa/admin/models/base.py" in save
  49.         super(AdminObject, self).save(*args, **kwargs)

File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/db/models/base.py" in save
  796.                        force_update=force_update, update_fields=update_fields)

File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/db/models/base.py" in save_base
  833.                                    update_fields=update_fields, raw=raw, using=using)

File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/dispatch/dispatcher.py" in send
  191.             response = receiver(signal=self, sender=sender, **named)

File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/modoboa_amavis/handlers.py" in manage_domain_policy
  40.         create_user_and_policy(u"@{0}".format(instance.name))

File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/modoboa_amavis/lib.py" in create_user_and_policy
  257.     policy = Policy.objects.create(policy_name=name[:32])

File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/db/models/manager.py" in manager_method
  85.                 return getattr(self.get_queryset(), name)(*args, **kwargs)

File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/db/models/query.py" in create
  399.         obj.save(force_insert=True, using=self.db)

File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/db/models/base.py" in save
  796.                        force_update=force_update, update_fields=update_fields)

File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/db/models/base.py" in save_base
  824.             updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)

File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/db/models/base.py" in _save_table
  908.             result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)

File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/db/models/base.py" in _do_insert
  947.                                using=using, raw=raw)

File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/db/models/manager.py" in manager_method
  85.                 return getattr(self.get_queryset(), name)(*args, **kwargs)

File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/db/models/query.py" in _insert
  1045.         return query.get_compiler(using=using).execute_sql(return_id)

File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/db/models/sql/compiler.py" in execute_sql
  1054.                 cursor.execute(sql, params)

File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/db/backends/utils.py" in execute
  79.             return super(CursorDebugWrapper, self).execute(sql, params)

File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/db/backends/utils.py" in execute
  64.                 return self.cursor.execute(sql, params)

File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/db/backends/mysql/base.py" in execute
  115.                 six.reraise(utils.IntegrityError, utils.IntegrityError(*tuple(e.args)), sys.exc_info()[2])

File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/db/backends/mysql/base.py" in execute
  110.             return self.cursor.execute(query, args)

File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/MySQLdb/cursors.py" in execute
  205.             self.errorhandler(self, exc, value)

File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/MySQLdb/connections.py" in defaulterrorhandler
  36.     raise errorclass, errorvalue

Exception Type: IntegrityError at /admin/domains/new/
Exception Value: (1048, "Column 'virus_lover' cannot be null")
Request information:
USER: admin

Originally created by @lazynooblet on GitHub (Apr 15, 2017). Original GitHub issue: https://github.com/modoboa/modoboa/issues/1098 # Impacted versions * Modoboa: 1.7.2 * installer used: No * Webserver: Apache # Steps to reproduce Create new relay domain # Current behavior Stacktrace # Expected behavior New relay domain # Notes I have added the amavis extension, created tables, setup amavis. Mails are being placed into SQL correctly by amavis. I now want to add a domain to the modoboa system, however I get stacktrace as follows (only visible in browser console, no error in browser content area) ```` IntegrityError at /admin/domains/new/ (1048, "Column 'virus_lover' cannot be null") Request Method: POST Request URL: https://server/modoboa/admin/domains/new/ Django Version: 1.10.7 Python Executable: /usr/bin/python Python Version: 2.7.9 Python Path: ['/usr/local/share/modoboa/instance', '/usr/local/share/modoboa/env/lib/python2.7/site-packages', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/lib/python2.7/dist-packages', '/usr/lib/pymodules/python2.7'] Server time: Sat, 15 Apr 2017 10:21:45 +0000 Installed Applications: ('django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.sites', 'django.contrib.staticfiles', 'reversion', 'ckeditor', 'ckeditor_uploader', 'rest_framework', 'rest_framework.authtoken', 'modoboa', 'modoboa.core', 'modoboa.lib', 'modoboa.admin', 'modoboa.relaydomains', 'modoboa.limits', 'modoboa.parameters', 'modoboa_amavis') Installed Middleware: ('x_forwarded_for.middleware.XForwardedForMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.locale.LocaleMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'modoboa.core.middleware.LocalConfigMiddleware', 'modoboa.lib.middleware.AjaxLoginRedirect', 'modoboa.lib.middleware.CommonExceptionCatcher', 'modoboa.lib.middleware.RequestCatcherMiddleware') Traceback: File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 42. response = get_response(request) File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response 249. response = self._get_response(request) File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 187. response = self.process_exception_by_middleware(e, request) File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 185. response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/utils/decorators.py" in inner 185. return func(*args, **kwargs) File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/utils/decorators.py" in inner 185. return func(*args, **kwargs) File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/contrib/auth/decorators.py" in _wrapped_view 23. return view_func(request, *args, **kwargs) File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/contrib/auth/decorators.py" in _wrapped_view 23. return view_func(request, *args, **kwargs) File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/reversion/revisions.py" in do_revision_context 315. return func(*args, **kwargs) File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/modoboa/admin/views/domain.py" in newdomain 115. return DomainWizard(request).process() File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/modoboa/lib/form_utils.py" in process 170. return self.next_step() File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/modoboa/lib/form_utils.py" in next_step 155. return self.done() File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/modoboa/admin/forms/domain.py" in done 386. domain = genform.save(self.request.user) File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/modoboa/admin/forms/domain.py" in save 155. d.save() File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/modoboa/admin/models/domain.py" in save 217. super(Domain, self).save(*args, **kwargs) File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/modoboa/admin/models/base.py" in save 49. super(AdminObject, self).save(*args, **kwargs) File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/db/models/base.py" in save 796. force_update=force_update, update_fields=update_fields) File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/db/models/base.py" in save_base 833. update_fields=update_fields, raw=raw, using=using) File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/dispatch/dispatcher.py" in send 191. response = receiver(signal=self, sender=sender, **named) File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/modoboa_amavis/handlers.py" in manage_domain_policy 40. create_user_and_policy(u"@{0}".format(instance.name)) File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/modoboa_amavis/lib.py" in create_user_and_policy 257. policy = Policy.objects.create(policy_name=name[:32]) File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/db/models/manager.py" in manager_method 85. return getattr(self.get_queryset(), name)(*args, **kwargs) File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/db/models/query.py" in create 399. obj.save(force_insert=True, using=self.db) File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/db/models/base.py" in save 796. force_update=force_update, update_fields=update_fields) File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/db/models/base.py" in save_base 824. updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields) File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/db/models/base.py" in _save_table 908. result = self._do_insert(cls._base_manager, using, fields, update_pk, raw) File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/db/models/base.py" in _do_insert 947. using=using, raw=raw) File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/db/models/manager.py" in manager_method 85. return getattr(self.get_queryset(), name)(*args, **kwargs) File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/db/models/query.py" in _insert 1045. return query.get_compiler(using=using).execute_sql(return_id) File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/db/models/sql/compiler.py" in execute_sql 1054. cursor.execute(sql, params) File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/db/backends/utils.py" in execute 79. return super(CursorDebugWrapper, self).execute(sql, params) File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/db/backends/utils.py" in execute 64. return self.cursor.execute(sql, params) File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/db/backends/mysql/base.py" in execute 115. six.reraise(utils.IntegrityError, utils.IntegrityError(*tuple(e.args)), sys.exc_info()[2]) File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/django/db/backends/mysql/base.py" in execute 110. return self.cursor.execute(query, args) File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/MySQLdb/cursors.py" in execute 205. self.errorhandler(self, exc, value) File "/usr/local/share/modoboa/env/lib/python2.7/site-packages/MySQLdb/connections.py" in defaulterrorhandler 36. raise errorclass, errorvalue Exception Type: IntegrityError at /admin/domains/new/ Exception Value: (1048, "Column 'virus_lover' cannot be null") Request information: USER: admin
kerem closed this issue 2026-02-27 11:14:16 +03:00
Author
Owner

@tonioo commented on GitHub (Apr 19, 2017):

@stalks What's your amavis version please?

<!-- gh-comment-id:295397084 --> @tonioo commented on GitHub (Apr 19, 2017): @stalks What's your amavis version please?
Author
Owner

@lazynooblet commented on GitHub (Apr 19, 2017):

Running Debian 8.7 (Jessie)
amavisd-new 1:2.10.1-2~deb8u1

<!-- gh-comment-id:295480509 --> @lazynooblet commented on GitHub (Apr 19, 2017): Running Debian 8.7 (Jessie) amavisd-new 1:2.10.1-2~deb8u1
Author
Owner

@lazynooblet commented on GitHub (Apr 19, 2017):

I finally realised what this was, simple structure issue with the database. I had used an incorrect table structure that required non-null entries for various fields. Used the included examples with amavis, now working. Apologies.

<!-- gh-comment-id:295488076 --> @lazynooblet commented on GitHub (Apr 19, 2017): I finally realised what this was, simple structure issue with the database. I had used an incorrect table structure that required non-null entries for various fields. Used the included examples with amavis, now working. Apologies.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/modoboa-modoboa#917
No description provided.