вида:
packets.go:446: busy buffer
connection.go:158: bad connection
При транзакциях?
Я попробовал реализовать транзакцию через
context.Background()
db.BeginTx(ctx, nil)
tx.Query
tx.ExecContext
tx.Commit()
И оно валится на втором запросе с такими ошибками.
Переписал без контекста на просто db.Begin и Query - проблема исчезла, ̶н̶о̶ ̶о̶с̶а̶д̶о̶ч̶е̶к̶ ̶о̶с̶т̶а̶л̶с̶я̶
В гугле подобные ошибки приводят к багрепортам в драйвере.
В общем, я скорее с вопросом про стабильность драйвера и если кто о природе подобных ошибок знает, поделитесь
Транзакции надо заново создавать
Я просто спавню горутины, каждая из которых создает свой коннект и свою транзакцию, делает два запроса -и всё.
Коннект создаёт? Это зря
Почему? Есть какие-то проблемы с созданием параллельных коннектов?
Коннекты должны браться из пула
никогда таких ошибок не видел, и драйвера у нас довольно стабильные
а сколько именно горутин. сколько при создании пуллов указано idle соединений? сколько база готова максимально принять соединений? может вы 1000 запросов одновременно отправляете и бд не справляется просто
Это скрипт на одну табличку с одной записью. Десяток горутин спавнил.
А вы rows после query закрываете то?
Обсуждают сегодня