有人能解释一下为什么我在弗拉斯克总是犯这些错误吗



我的Flask应用程序中不断出现这些错误:

  • malloc((:未排序的双链表已损坏
  • 双重免费或腐败(!prev(

基本上,我正在调用pos((方法,并试图从JS页面中获取year属性,以便在查询中使用它。。。但它不起作用,而是返回一些malloc错误

有人能解释一下这个问题以及如何解决吗????我已经研究了好几个小时了,但我仍然不明白我的代码是如何产生这些错误的。如果有人能给我指一个正确的方向并给我一个提示,我会非常感激。我在许多不同的帖子中研究了类似的malloc错误,但我尝试了他们提出的解决方案(添加命令:['--wait_timeout=28800','--max_allowed_packet=671008864']添加到我的docker组合文件(不起作用。

yr = 2022
pos_list = []
def pos_request():
global yr
global pos_list
cursor1 = conn.cursor (cursorclass = MySQLdb.cursors.DictCursor) ##conn is already set up
query = “private database structure info that I can’t share“ % (yr, yr, yr)
try:
cursor1.execute (query)
pos_list = []
for r in cursor1.fetchall():
pos_list.append (r)
cursor1.close ()
return pos_list
except (MySQLdb.Error, MySQLdb.Warning) as e:
return e
@app.route('/pos', methods= ['POST'])
def pos():
global yr
try:
yr = int(request.json['year'])
return json.dumps(pos_request(), default= str)
except:
return yr
@app.route('/pos', methods= ['GET'])
def pos_get():
return json.dumps(pos_list, default= str)
@app.route('/pos_post', methods = ['POST'])
def pos_post():

所以我发现我做错了什么。MySQLdb并不是为了支持使用一个MySQL连接的多个游标而构建的。我从他们的网站上得到了这个:;在事务进行过程中,两个线程除了不能在查询执行过程中共享连接之外,根本无法共享连接"因此,唯一的方法是使用另一个类,就像pymysql驱动程序snackrammerb建议的那样。或者,如果可以的话,为每个方法/路由打开新的MySQL连接。

来源:https://mysqlclient.readthedocs.io/user_guide.html(向下滚动至线程安全(

最新更新