Drizzleslap hangs with over 175 connections
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Drizzle |
Confirmed
|
Low
|
Brian Aker | ||
Cherry |
Won't Fix
|
Low
|
Unassigned |
Bug Description
Running drizzleslap with any number connections great than 175 causes it to hang:
Example:
drizzleslap --port=9306 --label=write --concurrency=200 --iterations=10 --engine=innodb --number-int
-cols=2 --number-
te-sql-
attaching to the process through gdb gives:
(gdb) bt
#0 0x00007f3c0d98756d in pthread_
#1 0x00000000004051c2 in run_scheduler (sptr=0xa462e0, stmts=0xa44350, concur=200, limit=0) at client/
#2 0x0000000000408e12 in concurrency_loop (con=0x7fff16fd
#3 0x0000000000409101 in main (argc=0, argv=0xa44178) at client/
adding -v -v -v for lots of verbose output shows that it hangs while doing a bunch of inserts:
........
INSERT INTO t1 VALUES (NULL,157622306
INSERT INTO t1 VALUES (NULL,132216654
INSERT INTO t1 VALUES (NULL,116314197
INSERT INTO t1 VALUES (NULL,140784159
INSERT INTO t1 VALUES (NULL,147107993
For now modifying all tests at http://
Related branches
Changed in drizzle: | |
importance: | Undecided → Critical |
milestone: | none → bell |
status: | New → Confirmed |
assignee: | nobody → Eric Day (eday) |
Changed in drizzle: | |
milestone: | bell → cherry |
Changed in drizzle: | |
milestone: | 2010-05-24 → none |
status: | Confirmed → Won't Fix |
Changed in drizzle: | |
assignee: | Eric Day (eday) → nobody |
Changed in drizzle: | |
status: | Won't Fix → Confirmed |
Changed in drizzle: | |
assignee: | nobody → Brian Aker (brianaker) |
This may be similar to this bug: bugs.mysql. com/bug. php?id= 43278
http://
The mysql proxy used to hang when running against mysqlslap (and also against drizzleslap using the mysql compatible mode)
The fix there was bazaar. launchpad. net/~mysql- proxy-developer s/mysql- proxy/trunk/ revision/ 708
http://
Basically increasing
listen(con->fd, 8) to
listen(con->fd, 128)
But looking at the drizzle code, that value is not hardcoded:
I found in drizzled/ plugin/ listen_ tcp.cc
this line:
if (listen(fd, (int) back_log) < 0)
and I found that "back_log" is a parameter you can pass to drizzled on startup (or in drizzle.cnf) as --back_log
$ ./sbin/drizzled --help | grep -i back_log
--back_log=# The number of outstanding connection requests Drizzle can
back_log 50
Lee: Could you see if http:// hudson. drizzle. org/view/ Drizzle- staging/ job/Drizzleslap -staging/ is passing any value for back_log?
Thanks
Diego