[Toaster] Weird migration issue

Michael Wood michael.g.wood at intel.com
Thu Apr 21 04:13:00 PDT 2016


Yes I briefly looked into this, and I think it has to do with a memory 
mapping issue. If the database is not closed before trying to run 
database migrate we get into a weird state where there is a transaction 
in memory that can't be completed as the database has been deleted.

This then blocks creating the database until it's gone from memory, the 
only way to do this is seemingly to reboot or use a different location 
on the filesystem for Toaster ...which is kind of worrying, we should 
probably open a django bug about this.

To avoid this make sure that toaster/bitbake is fully stopped before 
running migrate/touching the database file.

Michael

On 20/04/16 10:24, Barros Pena, Belen wrote:
> I've been coming across a problem with migrations occasionally (and rather
> randomly) when I start Toaster. At the beginning it seemed I was the only
> one seeing this. But, while at ELC, someone came to me because they were
> having the same problem. His trace is below. Restarting the host seems to
> solve the problem for me. In his case, he tried a different host and
> everything worked.
>
> It doesn't seem distro-related: his was CentOS, mine Ubuntu. That's all I
> know. Michael Wood looked at this briefly, so he might have something to
> add. It was not a problem when it was just me, but if other people are
> seeing this, then I am bit more worried.
>
> Any ideas on what could be causing it?
>
> Cheers
>
> Belén
>
> File
> "/state/partition1/scratch/tartler/yocto-master/poky/bitbake/bin/../lib/toa
> ster/manage.py", line 10, in <module>
>      execute_from_command_line(sys.argv)
>    File
> "/state/partition1/scratch/tartler/yocto-master/poky/build/venv/lib/python2
> .7/site-packages/django/core/management/__init__.py", line 354, in
> execute_from_command_line
>      utility.execute()
>    File
> "/state/partition1/scratch/tartler/yocto-master/poky/build/venv/lib/python2
> .7/site-packages/django/core/management/__init__.py", line 346, in execute
>      self.fetch_command(subcommand).run_from_argv(self.argv)
>    File
> "/state/partition1/scratch/tartler/yocto-master/poky/build/venv/lib/python2
> .7/site-packages/django/core/management/base.py", line 394, in
> run_from_argv
>      self.execute(*args, **cmd_options)
>    File
> "/state/partition1/scratch/tartler/yocto-master/poky/build/venv/lib/python2
> .7/site-packages/django/core/management/base.py", line 445, in execute
>      output = self.handle(*args, **options)
>    File
> "/state/partition1/scratch/tartler/yocto-master/poky/build/venv/lib/python2
> .7/site-packages/django/core/management/commands/migrate.py", line 222, in
> handle
>      executor.migrate(targets, plan, fake=fake, fake_initial=fake_initial)
>    File
> "/state/partition1/scratch/tartler/yocto-master/poky/build/venv/lib/python2
> .7/site-packages/django/db/migrations/executor.py", line 110, in migrate
>      self.apply_migration(states[migration], migration, fake=fake,
> fake_initial=fake_initial)
>    File
> "/state/partition1/scratch/tartler/yocto-master/poky/build/venv/lib/python2
> .7/site-packages/django/db/migrations/executor.py", line 148, in
> apply_migration
>      state = migration.apply(state, schema_editor)
>    File
> "/state/partition1/scratch/tartler/yocto-master/poky/build/venv/lib/python2
> .7/site-packages/django/db/backends/base/schema.py", line 93, in __exit__
>      self.atomic.__exit__(exc_type, exc_value, traceback)
>    File
> "/state/partition1/scratch/tartler/yocto-master/poky/build/venv/lib/python2
> .7/site-packages/django/db/transaction.py", line 228, in __exit__
>      connection.rollback()
>    File
> "/state/partition1/scratch/tartler/yocto-master/poky/build/venv/lib/python2
> .7/site-packages/django/db/backends/base/base.py", line 183, in rollback
>      self._rollback()
>    File
> "/state/partition1/scratch/tartler/yocto-master/poky/build/venv/lib/python2
> .7/site-packages/django/db/backends/base/base.py", line 147, in _rollback
>      return self.connection.rollback()
>    File
> "/state/partition1/scratch/tartler/yocto-master/poky/build/venv/lib/python2
> .7/site-packages/django/db/utils.py", line 98, in __exit__
>      six.reraise(dj_exc_type, dj_exc_value, traceback)
>    File
> "/state/partition1/scratch/tartler/yocto-master/poky/build/venv/lib/python2
> .7/site-packages/django/db/backends/base/base.py", line 147, in _rollback
>      return self.connection.rollback()
> django.db.utils.OperationalError: cannot rollback - no transaction is
> active
> Failed migrations, aborting system start
> Failed start.
>
>



More information about the toaster mailing list