#29014: State that sqlite >= 3.7.15 is supported
-------------------------------------+-------------------------------------
     Reporter:  Дилян Палаузов       |                    Owner:  nobody
         Type:                       |                   Status:  closed
  Cleanup/optimization               |
    Component:  Documentation        |                  Version:  master
     Severity:  Normal               |               Resolution:  needsinfo
     Keywords:                       |             Triage Stage:
                                     |  Unreviewed
    Has patch:  0                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------

Comment (by Дилян Палаузов):

 I have forgotten about #28584.

 Running the tests with sqlite3 from
 https://www.sqlite.org/src/tarball/sqlite.tar.gz?r=b078b588d617e078";
 (version 3.6.23.1), without recompiling python after sqlite was installed,
 prints:
 {{{
 Testing against Django installed in '/git/django/django' with up to 4
 processes
 Creating test database for alias 'default'...
 Cloning test database for alias 'default'...
 Cloning test database for alias 'default'...
 Cloning test database for alias 'default'...
 Cloning test database for alias 'default'...
 Creating test database for alias 'other'...
 Cloning test database for alias 'other'...
 Cloning test database for alias 'other'...
 Cloning test database for alias 'other'...
 Cloning test database for alias 'other'...
 System check identified no issues (14 silenced).
 
........................................................................................................EE............................................

 test_action_column_class (admin_views.test_actions.AdminActionsTest)
 failed:

     TemplateDoesNotExist('admin/admin_views/subscriber/change_list.html,
     admin/admin_views/change_list.html, admin/change_list.html',)

 Unfortunately, the exception it raised cannot be pickled, making it
 impossible
 for the parallel test runner to handle it cleanly.

 Here's the error encountered while trying to pickle the exception:

     PicklingError("Can't pickle <function go_boom at 0x7f5ca1721378>: it's
     not the same object as view_tests.templatetags.debugtags.go_boom",)

 You should re-run this test with the --parallel=1 option to reproduce the
 failure and get a correct traceback.

 multiprocessing.pool.RemoteTraceback:
 """
 Traceback (most recent call last):
   File "/usr/local/lib/python3.5/multiprocessing/pool.py", line 119, in
 worker
     result = (True, func(*args, **kwds))
   File "/git/django/django/test/runner.py", line 309, in _run_subsuite
     result = runner.run(subsuite)
   File "/git/django/django/test/runner.py", line 256, in run
     test(result)
   File "/usr/local/lib/python3.5/unittest/suite.py", line 84, in __call__
     return self.run(*args, **kwds)
   File "/usr/local/lib/python3.5/unittest/suite.py", line 122, in run
     test(result)
   File "/git/django/django/test/testcases.py", line 207, in __call__
     super().__call__(result)
   File "/usr/local/lib/python3.5/unittest/case.py", line 653, in __call__
     return self.run(*args, **kwds)
   File "/usr/local/lib/python3.5/unittest/case.py", line 613, in run
     self._feedErrorsToResult(result, outcome.errors)
   File "/usr/local/lib/python3.5/unittest/case.py", line 543, in
 _feedErrorsToResult
     result.addError(test, exc_info)
   File "/git/django/django/test/runner.py", line 197, in addError
     self.check_picklable(test, err)
   File "/git/django/django/test/runner.py", line 130, in check_picklable
     self._confirm_picklable(err)
   File "/git/django/django/test/runner.py", line 104, in
 _confirm_picklable
     pickle.loads(pickle.dumps(obj))
 _pickle.PicklingError: Can't pickle <function go_boom at 0x7f5ca1721378>:
 it's not the same object as view_tests.templatetags.debugtags.go_boom
 """

 The above exception was the direct cause of the following exception:

 Traceback (most recent call last):
   File "./runtests.py", line 473, in <module>
     options.exclude_tags,
   File "./runtests.py", line 278, in django_tests
     extra_tests=extra_tests,
   File "/git/django/django/test/runner.py", line 600, in run_tests
     result = self.run_suite(suite)
   File "/git/django/django/test/runner.py", line 566, in run_suite
     return runner.run(suite)
   File "/usr/local/lib/python3.5/unittest/runner.py", line 176, in run
     test(result)
   File "/usr/local/lib/python3.5/unittest/suite.py", line 84, in __call__
     return self.run(*args, **kwds)
   File "/git/django/django/test/runner.py", line 372, in run
     subsuite_index, events = test_results.next(timeout=0.1)
   File "/usr/local/lib/python3.5/multiprocessing/pool.py", line 731, in
 next
     raise value
 _pickle.PicklingError: Can't pickle <function go_boom at 0x7f5ca1721378>:
 it's not the same object as view_tests.templatetags.debugtags.go_boom
 }}}

 Deleting libsqlite* from /usr/local/lib and using the old libsqlite from
 /usr/lib makes the problem disappear.

 Recompiling python 3.5 with the same sqlite version and running the tests
 prints
 {{{
 Testing against Django installed in '/git/django/django' with up to 4
 processes
 Creating test database for alias 'default'...
 Traceback (most recent call last):
   File "/git/django/django/db/backends/base/base.py", line 216, in
 ensure_connection
     self.connect()
   File "/git/django/django/db/backends/base/base.py", line 194, in connect
     self.connection = self.get_new_connection(conn_params)
   File "/git/django/django/db/backends/sqlite3/base.py", line 158, in
 get_new_connection
     conn = Database.connect(**conn_params)
 sqlite3.NotSupportedError: URIs not supported

 The above exception was the direct cause of the following exception:

 Traceback (most recent call last):
   File "./runtests.py", line 473, in <module>
     options.exclude_tags,
   File "./runtests.py", line 278, in django_tests
     extra_tests=extra_tests,
   File "/git/django/django/test/runner.py", line 598, in run_tests
     old_config = self.setup_databases()
   File "/git/django/django/test/runner.py", line 545, in setup_databases
     self.parallel, **kwargs
   File "/git/django/django/test/utils.py", line 174, in setup_databases
     serialize=connection.settings_dict.get('TEST', {}).get('SERIALIZE',
 True),
   File "/git/django/django/db/backends/base/creation.py", line 68, in
 create_test_db
     run_syncdb=True,
   File "/git/django/django/core/management/__init__.py", line 141, in
 call_command
     return command.execute(*args, **defaults)
   File "/git/django/django/core/management/base.py", line 335, in execute
     output = self.handle(*args, **options)
   File "/git/django/django/core/management/commands/migrate.py", line 79,
 in handle
     executor = MigrationExecutor(connection,
 self.migration_progress_callback)
   File "/git/django/django/db/migrations/executor.py", line 18, in
 __init__
     self.loader = MigrationLoader(self.connection)
   File "/git/django/django/db/migrations/loader.py", line 49, in __init__
     self.build_graph()
   File "/git/django/django/db/migrations/loader.py", line 205, in
 build_graph
     self.applied_migrations = recorder.applied_migrations()
   File "/git/django/django/db/migrations/recorder.py", line 61, in
 applied_migrations
     if self.has_table():
   File "/git/django/django/db/migrations/recorder.py", line 44, in
 has_table
     return self.Migration._meta.db_table in
 self.connection.introspection.table_names(self.connection.cursor())
   File "/git/django/django/db/backends/base/base.py", line 255, in cursor
     return self._cursor()
   File "/git/django/django/db/backends/base/base.py", line 232, in _cursor
     self.ensure_connection()
   File "/git/django/django/db/backends/base/base.py", line 216, in
 ensure_connection
     self.connect()
   File "/git/django/django/db/utils.py", line 89, in __exit__
     raise dj_exc_value.with_traceback(traceback) from exc_value
   File "/git/django/django/db/backends/base/base.py", line 216, in
 ensure_connection
     self.connect()
   File "/git/django/django/db/backends/base/base.py", line 194, in connect
     self.connection = self.get_new_connection(conn_params)
   File "/git/django/django/db/backends/sqlite3/base.py", line 158, in
 get_new_connection
     conn = Database.connect(**conn_params)
 django.db.utils.NotSupportedError: URIs not supported
 }}}

 All in all, as anybody can compile sqlite and python on their own, it has
 to be documented which sqlite version Django requires.  How sometimes
 python is bundled is irrelevant.

-- 
Ticket URL: <https://code.djangoproject.com/ticket/29014#comment:3>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/072.e9b9f1c490ce5a684d6899e3083ced91%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to