Dead lock in DB for tabCustomer

When I sign up a new user from website, and view all products page, then the product list will become blank. And after a short time. I will got a error message in error log.
I am using ERPNext: v14.20.0 (version-14).
And the error log is as following. I think this maybe a bug.
From the stack trace, it shows that system try to create a customer.

Blockquote
File “apps/erpnext/erpnext/e_commerce/shopping_cart/cart.py”, line 439, in _set_price_list
party_name = quotation.get(“party_name”) if quotation else get_party().get(“name”)
cart_settings = <ECommerceSettings: E Commerce Settings>
quotation = None
get_default_price_list = <function get_default_price_list at 0x7f1e30ba95a0>
File “apps/erpnext/erpnext/e_commerce/shopping_cart/cart.py”, line 524, in get_party
customer.insert(ignore_permissions=True)
user = ‘website03@test.com’
contact_name = ‘website03’
party = None
contact = <Contact: website03>
cart_settings = <ECommerceSettings: E Commerce Settings>
debtors_account = ‘1122 - 应收账款 - 鸿锟’
customer = <Customer: website03>
fullname = ‘website03’
File “apps/frappe/frappe/model/document.py”, line 270, in insert
self.db_insert(ignore_if_duplicate=ignore_if_duplicate)
self = <Customer: website03>
ignore_permissions = True
ignore_links = None
ignore_if_duplicate = False
ignore_mandatory = None
set_name = None
set_child_names = True
File “apps/frappe/frappe/model/base_document.py”, line 502, in db_insert
frappe.db.sql(
self = <Customer: website03>
ignore_if_duplicate = False
conflict_handler = ‘’
d = {‘name’: ‘website03’, ‘owner’: ‘website03@test.com’, ‘creation’: ‘2023-04-26 10:14:16.794221’, ‘modified’: ‘2023-04-26 10:14:16.794221’, ‘modified_by’: ‘website03@test.com’, ‘docstatus’: 0, ‘idx’: 0, ‘naming_series’: ‘CUST-.YYYY.-’, ‘salutation’: None, ‘customer_name’: ‘website03’, ‘customer_type’: ‘Individual’, ‘customer_group’: ‘个人’, ‘territory’: ‘所有的区域’, ‘gender’: None, ‘lead_name’: None, ‘opportunity_name’: None, ‘account_manager’: None, ‘image’: None, ‘default_price_list’: None, ‘default_bank_account’: None, ‘default_currency’: None, ‘is_internal_customer’: 0, ‘represents_company’: None, ‘market_segment’: None, ‘industry’: None, ‘customer_pos_id’: None, ‘website’: None, ‘language’: ‘zh’, ‘customer_details’: None, ‘customer_primary_contact’: None, ‘mobile_no’: None, ‘email_id’: None, ‘customer_primary_address’: None, ‘primary_address’: None, ‘tax_id’: None, ‘tax_category’: None, ‘tax_withholding_category’: None, ‘payment_terms’: None, ‘loyalty_program’: None, ‘loyalty_program_tier’…
columns = [‘name’, ‘owner’, ‘creation’, ‘modified’, ‘modified_by’, ‘docstatus’, ‘idx’, ‘naming_series’, ‘salutation’, ‘customer_name’, ‘customer_type’, ‘customer_group’, ‘territory’, ‘gender’, ‘lead_name’, ‘opportunity_name’, ‘account_manager’, ‘image’, ‘default_price_list’, ‘default_bank_account’, ‘default_currency’, ‘is_internal_customer’, ‘represents_company’, ‘market_segment’, ‘industry’, ‘customer_pos_id’, ‘website’, ‘language’, ‘customer_details’, ‘customer_primary_contact’, ‘mobile_no’, ‘email_id’, ‘customer_primary_address’, ‘primary_address’, ‘tax_id’, ‘tax_category’, ‘tax_withholding_category’, ‘payment_terms’, ‘loyalty_program’, ‘loyalty_program_tier’, ‘default_sales_partner’, ‘default_commission_rate’, ‘so_required’, ‘dn_required’, ‘is_frozen’, ‘disabled’]
File “apps/frappe/frappe/database/database.py”, line 228, in sql
raise frappe.QueryTimeoutError(e) from e
self = <frappe.database.mariadb.database.MariaDBDatabase object at 0x7f1e318e1de0>
query = ‘INSERT INTO tabCustomer (name, owner, creation, modified, modified_by, docstatus, idx, naming_series, salutation, customer_name, customer_type, customer_group, territory, gender, lead_name, opportunity_name, account_manager, image, default_price_list, default_bank_account, default_currency, is_internal_customer, represents_company, market_segment, industry, customer_pos_id, website, language, customer_details, customer_primary_contact, mobile_no, email_id, customer_primary_address, primary_address, tax_id, tax_category, tax_withholding_category, payment_terms, loyalty_program, loyalty_program_tier, default_sales_partner, default_commission_rate, so_required, dn_required, is_frozen, disabled)\n\t\t\t\t\tVALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)’
values = [‘website03’, ‘website03@test.com’, ‘2023-04-26 10:14:16.794221’, ‘2023-04-26 10:14:16.794221’, ‘website03@test.com’, 0, 0, ‘CUST-.YYYY.-’, None, ‘website03’, ‘Individual’, ‘个人’, ‘所有的区域’, None, None, None, None, None, None, None, None, 0, None, None, None, None, None, ‘zh’, None, None, None, None, None, None, None, None, None, None, None, None, None, 0.0, 0, 0, 0, 0]
as_dict = 0
as_list = 0
formatted = 0
debug = False
ignore_ddl = 0
as_utf8 = 0
auto_commit = 0
update = None
explain = False
run = True
pluck = False
frappe.exceptions.QueryTimeoutError: (1205, ‘Lock wait timeout exceeded; try restarting transaction’)

Blockquote

Blockquote