patchman
patchman copied to clipboard
django.db.utils.OperationalError: database is locked
Getting below error on server while running patchman -a command
Traceback (most recent call last): 26%|############### |ETA: 0:00:34
File "/usr/lib/python3/dist-packages/django/db/models/query.py", line 538, in get_or_create
return self.get(**kwargs), False
File "/usr/lib/python3/dist-packages/django/db/models/query.py", line 406, in get
raise self.model.DoesNotExist(
packages.models.DoesNotExist: Package matching query does not exist.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/django/db/backends/utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File "/usr/lib/python3/dist-packages/django/db/backends/sqlite3/base.py", line 383, in execute
return Database.Cursor.execute(self, query, params)
sqlite3.OperationalError: database is locked
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/bin/patchman", line 686, in <module>
main()
File "/usr/bin/patchman", line 680, in main
showhelp = process_args(args)
File "/usr/bin/patchman", line 646, in process_args
refresh_repos(args.repo, args.force)
File "/usr/bin/patchman", line 121, in refresh_repos
repo.refresh(force)
File "/usr/lib/python3/dist-packages/repos/models.py", line 86, in refresh
refresh_rpm_repo(self)
File "/usr/lib/python3/dist-packages/repos/utils.py", line 616, in refresh_rpm_repo
refresh_yum_repo(mirror, data, mirror_url, ts)
File "/usr/lib/python3/dist-packages/repos/utils.py", line 481, in refresh_yum_repo
update_mirror_packages(mirror, packages)
File "/usr/lib/python3/dist-packages/repos/utils.py", line 116, in update_mirror_packages
p, c = all_packages.get_or_create(name=package_id,
File "/usr/lib/python3/dist-packages/django/db/models/query.py", line 541, in get_or_create
return self._create_object_from_params(kwargs, params)
File "/usr/lib/python3/dist-packages/django/db/models/query.py", line 575, in _create_object_from_params
obj = self.create(**params)
File "/usr/lib/python3/dist-packages/django/db/models/query.py", line 422, in create
obj.save(force_insert=True, using=self.db)
File "/usr/lib/python3/dist-packages/django/db/models/base.py", line 740, in save
self.save_base(using=using, force_insert=force_insert,
File "/usr/lib/python3/dist-packages/django/db/models/base.py", line 777, in save_base
updated = self._save_table(
File "/usr/lib/python3/dist-packages/django/db/models/base.py", line 870, in _save_table
result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
File "/usr/lib/python3/dist-packages/django/db/models/base.py", line 907, in _do_insert
return manager._insert([self], fields=fields, return_id=update_pk,
File "/usr/lib/python3/dist-packages/django/db/models/manager.py", line 82, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/usr/lib/python3/dist-packages/django/db/models/query.py", line 1186, in _insert
return query.get_compiler(using=using).execute_sql(return_id)
File "/usr/lib/python3/dist-packages/django/db/models/sql/compiler.py", line 1375, in execute_sql
cursor.execute(sql, params)
File "/usr/lib/python3/dist-packages/django/db/backends/utils.py", line 67, in execute
return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
File "/usr/lib/python3/dist-packages/django/db/backends/utils.py", line 76, in _execute_with_wrappers
return executor(sql, params, many, context)
File "/usr/lib/python3/dist-packages/django/db/backends/utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File "/usr/lib/python3/dist-packages/django/db/utils.py", line 89, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File "/usr/lib/python3/dist-packages/django/db/backends/utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File "/usr/lib/python3/dist-packages/django/db/backends/sqlite3/base.py", line 383, in execute
return Database.Cursor.execute(self, query, params)
django.db.utils.OperationalError: database is locked
I tried with deleting Errata from django admin then run patchman -d
root@awslpatchman:/var/lib/patchman/db# patchman -d
Removing 731 orphaned Packages: 100%|##################################################################################################################################################|Time: 0:00:06
Removing 30 unused Package names: 100%|##################################################################################################################################################|Time: 0:00:00
No orphaned Package Architectures found.
Removing 2 orphaned M Arches: 100%|##################################################################################################################################################|Time: 0:00:00
No Repositories with zero Mirrors found.
again ran patchman -e
root@awslpatchman:/var/lib/patchman/db# patchman -e
Downloading Errata Checksum: 100%|##################################################################################################################################################|Time: 0:00:00
Downloading CentOS Errata: 100%|##################################################################################################################################################|Time: 0:00:00
Traceback (most recent call last): 2%|#### |ETA: 0:18:35
File "/usr/lib/python3/dist-packages/django/db/backends/utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File "/usr/lib/python3/dist-packages/django/db/backends/sqlite3/base.py", line 383, in execute
return Database.Cursor.execute(self, query, params)
sqlite3.OperationalError: database is locked
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/bin/patchman", line 686, in <module>
main()
File "/usr/bin/patchman", line 680, in main
showhelp = process_args(args)
File "/usr/bin/patchman", line 663, in process_args
update_errata(args.force)
File "/usr/lib/python3/dist-packages/packages/utils.py", line 89, in update_errata
parse_errata(bunzip2(data), force)
File "/usr/lib/python3/dist-packages/packages/utils.py", line 126, in parse_errata
e = parse_errata_tag(child.tag, child.attrib, force)
File "/usr/lib/python3/dist-packages/packages/utils.py", line 152, in parse_errata_tag
add_erratum_refs(e, references)
File "/usr/lib/python3/dist-packages/packages/utils.py", line 230, in add_erratum_refs
e.references.add(er)
File "/usr/lib/python3/dist-packages/django/db/models/fields/related_descriptors.py", line 936, in add
self._add_items(
File "/usr/lib/python3/dist-packages/django/db/models/fields/related_descriptors.py", line 1080, in _add_items
self.through._default_manager.using(db).bulk_create([
File "/usr/lib/python3/dist-packages/django/db/models/query.py", line 474, in bulk_create
ids = self._batched_insert(objs_without_pk, fields, batch_size, ignore_conflicts=ignore_conflicts)
File "/usr/lib/python3/dist-packages/django/db/models/query.py", line 1211, in _batched_insert
self._insert(item, fields=fields, using=self.db, ignore_conflicts=ignore_conflicts)
File "/usr/lib/python3/dist-packages/django/db/models/query.py", line 1186, in _insert
return query.get_compiler(using=using).execute_sql(return_id)
File "/usr/lib/python3/dist-packages/django/db/models/sql/compiler.py", line 1375, in execute_sql
cursor.execute(sql, params)
File "/usr/lib/python3/dist-packages/django/db/backends/utils.py", line 67, in execute
return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
File "/usr/lib/python3/dist-packages/django/db/backends/utils.py", line 76, in _execute_with_wrappers
return executor(sql, params, many, context)
File "/usr/lib/python3/dist-packages/django/db/backends/utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File "/usr/lib/python3/dist-packages/django/db/utils.py", line 89, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File "/usr/lib/python3/dist-packages/django/db/backends/utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File "/usr/lib/python3/dist-packages/django/db/backends/sqlite3/base.py", line 383, in execute
return Database.Cursor.execute(self, query, params)
django.db.utils.OperationalError: database is locked
even tried with fuser -k patchman.db
Everytime it ends with same error.
To check I switched from sqlite to mysql when ran patchman -a
get below error
Removing 1198 orphaned Packages: 100%|##################################################################################################################################################|Time: 0:02:05
Removing 931 unused Package names: 100%|##################################################################################################################################################|Time: 0:00:58
Removing 2 orphaned P Arches: 100%|##################################################################################################################################################|Time: 0:00:00
No orphaned Machine Architectures found.
No Repositories with zero Mirrors found.
Removing 4 unused tagged items 100%|##################################################################################################################################################|Time: 0:00:00
Refreshing metadata for all Repos
Repository 1 : Amazon Linux 2 core repository x86_64
Downloading repo info (1/2): 100%|##################################################################################################################################################|Time: 0:00:00
Found yum rpm repo - http://amazonlinux.us-east-1.amazonaws.com/2/core/2.0/x86_64/37eaca2854cfb48e16ced2e2a46fb7e92869f36c054be627be581970bc437a42/repodata/repomd.xml
Downloading repo info (2/2): 100%|##################################################################################################################################################|Time: 0:01:27
Killed
I tried to increase innodb_lock_wait_timeout
but it also didn't worked
mysql> show variables like 'innodb_lock_wait_timeout';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| innodb_lock_wait_timeout | 200 |
+--------------------------+-------+
1 row in set (0.01 sec)
mysql>
mysql> SHOW GLOBAL VARIABLES LIKE 'innodb_lock_wait_timeout';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| innodb_lock_wait_timeout | 200 |
+--------------------------+-------+
1 row in set (0.00 sec)
Everything seems running fine on instance
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 2153/mysqld
tcp 0 0 0.0.0.0:1514 0.0.0.0:* LISTEN 633/al-slc.current
tcp 0 0 127.0.0.1:587 0.0.0.0:* LISTEN 820/sendmail: MTA:
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 708/redis-server 12
tcp 0 0 127.0.0.1:11211 0.0.0.0:* LISTEN 499/memcached
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 439/systemd-resolve
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 887/sshd: /usr/sbin
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 820/sendmail: MTA:
tcp 0 0 127.0.0.1:33060 0.0.0.0:* LISTEN 2153/mysqld
tcp6 0 0 ::1:6379 :::* LISTEN 708/redis-server 12
tcp6 0 0 :::80 :::* LISTEN 12567/apache2
tcp6 0 0 :::22 :::* LISTEN 887/sshd: /usr/sbin
Just checking - is DEBUG=True
set in your local settings file?
Seems to be a memory issue. Feel free to reopen if you have more details.