[MDEV-4974] memory leak in 5.5.32-MariaDB-1~wheezy-log Created: 2013-08-30 Updated: 2014-01-30 Resolved: 2014-01-21 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | None |
| Affects Version/s: | 5.5.32 |
| Fix Version/s: | 5.5.35 |
| Type: | Bug | Priority: | Critical |
| Reporter: | Daniel Black | Assignee: | Sergei Petrunia |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Environment: |
Debian Wheezy x86_64 Linux greeneggs.lentz.com.au 3.9.3-x86_64-linode33 #1 SMP Mon May 20 10:22:57 EDT 2013 x86_64 GNU/Linux |
||
| Attachments: |
|
| Description |
|
After running mariadb-5.5.32 in a multimaster for a few days its almost out of memory on the active master (the one getting all the reads). The replication slave (same version) doesn't suffer the memory leak (with or without the replication filters defined). Disabling the query cache on the active master may (was slightly off peak) have slowed the memory leak however it wasn't stopped. In the graph attached the query cache was disabled from Wed 5:30 to Thursday 03:00 For greeneggs-mysql_commands-day.png the first drop is when query cache was turned back on. At the end I moved the active master to the other server. Other graphs are for this same time interval. Memory usage calculation: per connection: @read_buffer_size + @read_rnd_buffer_size + @sort_buffer_size + @join_buffer_size + @binlog_cache_size + @thread_stack + @@tmp_table_size = 19070976 Max_used_connections 15 Static component: select 15 * 19070976 + 322961408; = 609026048 From top: I've still got the server running if more status is required. show engine innodb status
I'm planning on doing a debug build from |
| Comments |
| Comment by Elena Stepanova [ 2013-08-30 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
Hi Daniel, Given that it's 5.5 (hence no multi-source replication there), what exactly do you mean by multi-master? Could you please specify the replication topology you are using? And another question, for better understanding – how come are you using a Wheezy package on Squeeze? Thanks. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Daniel Black [ 2013-08-30 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
> Could you please specify the replication topology you are using? Two servers, both masters to each other, both slaves of each other. > how come are you using a Wheezy package on Squeeze? Was in error. Am using a wheezy package on wheezy. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Daniel Black [ 2013-09-02 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
valgrind output of mysqld running under load for about an hour. If you want me to run with other valgrind options let me know. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Elena Stepanova [ 2013-09-03 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
Hi Daniel, Can you share any information in regard to SELECTs that you're using? Even better if there's also information about the data structures. Thanks. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Arjen Lentz [ 2013-09-04 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
Elena, I don't see relevance for that request. And it's unpractical. I would think that the Valgrind output should provide a good lead when it comes to memory leaks? A related question, can you please confirm whether the build team runs the testsuite on a Valgrind build for each release? This used to be done but given the issue with the memory leak in 5.5.31 I'd just like to make sure. Thanks | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Elena Stepanova [ 2013-09-04 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
Arjen, There is obvious relevance though. For the question about valgrind and MTR, yes, I confirm that the team runs the test suite on a Valgrind build for each release (for each push, for that matter). You can see it as "work-amd64-valgrind" builder results on the buildbot page. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Daniel Black [ 2013-09-04 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
The db is doing about 60 selects per second across 40 databases with a fair diversity of code on it. The last trackback identified 20 in ~40mins so is still a large dataset to filter. I was playing with the following in an init script and having the general log running. Was hoping that --vgdb=yes --vgdb-error=1 would freeze activity (waiting for debugger) in the general log leaving an offending query somewhere near the end of the general log. Any other ideas? /usr/bin/valgrind --leak-check=full --read-var-info=yes --undef-value-errors=no --trace-children=yes --trace-children-skip='/cut,/wc,/grep,/date,/dirname,/expr,/logger,/rm,/my_print_defaults,/sed' --log-file=/tmp/valgrind.mysqld.%p --vgdb=yes --vgdb-error=1 \ note: --undef-value-errors=no is a big cpu saver | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Daniel Black [ 2013-09-04 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
> Was hoping that --vgdb=yes --vgdb-error=1 Didn't work. Compiling valgrind from source with the --error-limit at 1 (./coregrind/m_errormgr.c M_COLLECT_NO_ERRORS_AFTER_FOUND=1 (not 10,000,000)). | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Arjen Lentz [ 2013-09-05 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
Hi Elena - tnx for that info, good to hear. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Elena Stepanova [ 2013-09-05 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
At this point I'd take whatever I could get. If I understand correctly, Daniel's run with valgrind also had general log enabled, is it so? If it is, would it be possible for me to see that general log? 60 selects per second in an hour-long test run is not that bad, I could actually go through the log to see what it has that my tests don't and proceed from there. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Arjen Lentz [ 2013-09-06 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
Elena - k can do. might have to make that a private upload. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Elena Stepanova [ 2013-09-06 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
Hi Daniel, Could you please try another thing: turn off index_merge* switches in the optimizer_switch (globally) and see if it makes the problem go away? It might or might not, depending on which queries cause the leak. According to Sergei Petrunia's analysis, it's either queries that use index_merge, or queries with GROUP BY and/or ORDER BY (and join, of course). The latter is not very helpful, because there are a huge number of queries with ORDER BY in the flow; so it's easier to check the index_merge theory first. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Daniel Black [ 2013-09-07 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
Ok. Have set index_merge*=off on the non-valgrind running server to see if there's a leak globally. Will run this under valgrind if there proves to be a leak or tomorrow. before:
----------------- after: | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Daniel Black [ 2013-09-09 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
Good news and bad. Its not index merge. Still leaking. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Elena Stepanova [ 2013-09-09 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
Thanks, Daniel. That's bad news, since my next attempts to reproduce it over the weekend (now by populating your schema with some random values and re-running the entire general log) also didn't hit the problem. I'll think what else to do. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Daniel Black [ 2013-09-09 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
My thoughts are to get this arcane patch compiled and try to view the datastructure ( https://bugs.kde.org/show_bug.cgi?id=108905 ) to give a clue or write a patch on valgrind to record the allocation time of memory and try to correlate it that way. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Elena Stepanova [ 2013-09-09 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
Hi Daniel, To make sure I build server the same way you do (I mean the valgrind one) – how do you build it? | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Patryk Pomykalski [ 2013-09-09 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
Maybe you could use valgrind massif? | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Daniel Black [ 2013-09-09 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
The valgrind I've used so far has just been the debian packaged valgrind. I did end up compling a valgrind-3.8.1 with a basic ./configure && make && sudo make install Mariadb was fairly standard: edited debian/control and debian/rules as per https://kb.askmonty.org/en/how-to-produce-a-full-stack-trace-for-mysqld-the-mariadb-server/#comment_359 (except using 5.5 as version number) dpkg-buildpackage -nc -us -uc (http://www.debian.org/doc/manuals/maint-guide/build.en.html) edit /etc/init.d/mysql to contain before the mysqld_safe line Thanks for the link Patryk - I had seen this before but dismissed it as not enough. Given what I have currently I'll take another look. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Daniel Black [ 2013-09-09 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
massiff output pushed to I've yet to look at it myself. On irc if you have any requests | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Daniel Black [ 2013-09-09 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
the mysqld was started with general log active and this is included the tarball | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Daniel Black [ 2013-09-10 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
ok. I've looked through the massif logs. They don't have a sample snapshot/backtrace the same as the memcheck one so the ones so far aren't that much use. They do however produce a have a time on the snapshot that can be correlated with the general query log. I may just need to run the massif long enough to get the snapshot (though I'm thinking this is still a low probability of a hit). More realistic could tigger debug messages (or some gdb events) to obtain timings at one of the following locations to correlate with the general query log: | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Elena Stepanova [ 2013-09-10 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
That's right, I also saw that there was no this specific one in init_read_record; but there was something in evaluate_join_record instead. Sergei Petrunia is going to take a look at the output to see if it's relevant to the initial memory leak problem. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Daniel Black [ 2013-09-10 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
I've been reading up on https://sourceware.org/gdb/onlinedocs/gdb.html#Tracepoints I've compiled userspace-rcu-0.5.3/ust-0.11 and built gdbserver (gdb/gdbserver with ./configure --with-ust=/usr/local ). In record.cc added the following after the existing includes (duplicate and seemingly equivalent defs occurred for likely/unlikely) #undef unlikely inside the existing if (! init_rr_cache(thd, info) braces added: /* is there something more I should be capturing? - text representation of query? or execution plan? */ configure.cmake and appending ${LIBUST} ${LIBURCUBP} to then end of CMAKE_REQUIRED_LIBRARIES Unfortunately is currently not linking with the following error: tips on debugging this welcome but haven't spent much time on this. next I plan to: with gdbserver running mysqld (or the valgrind --tool=memcheck if I can) attach gdb and try the following: set default-collect $args,$locals,$_ret,$_sdata
tstart
tfind start and correlated allocated address to memleak output, or time to general query log. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Elena Stepanova [ 2013-09-11 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
After switching from Precise to Wheezy, I've got the one in ma_checkpoint_init (which is also in your valgrind output). No those about sub_select/join_init_record yet, but it's already remarkable since i wasn't getting any at all on Precise. I'm going to re-run my other tests on Wheezy, possibly it's something system-related (valgrind version is the same on both, 3.7.0) | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Sergei Petrunia [ 2013-09-24 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
Me and Elena went through the available information again, including the massif logs, and could not get any clue. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Sergei Petrunia [ 2013-09-24 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
Daniel, could you try exploring with the attached patch, psergey-mdev4974-xpl1.diff ? The patch makes the server to write a file, /tmp/leaks-track.sql. Into that file it will write, at appropriate times, statements: insert into track_mem (query_id, ptr, query) values (%lld, %p, '%s'); the idea is that one can pipe leaks-track.sql into another mysql server, and as soon as table "leaks" is not empty, it will have the query that has caused the leak. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Daniel Black [ 2013-09-25 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergie, thanks for the patch. I have compiled, run and uploaded the result to ftp://ftp.askmonty.org/private/. Seems to only include the insert into leaks command and no insert/delete from/into track_mem. I tried moving track_mem_alloc(thd, info->cache); before DBUG_RETURN(1); in sql/record.cc but it didn't seem to have an effect. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Elena Stepanova [ 2013-10-06 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
Assigned to Sergei Petrunia for the follow-up on the debug output. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Daniel Black [ 2013-11-11 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
I'm happy to try another patch. I'm still getting this memory leak. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Sergei Petrunia [ 2013-11-21 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
I've looked through 4974-leaks-track.sql and have found this: insert into track_mem (query_id, ptr, query) values (29476, 0x7f277f242000, 'SELECT DISTINCT node.nid AS nid, This gives us something! | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Sergei Petrunia [ 2013-11-21 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
Btw, the above is the only such query in all the uploaded files.
SELECT DISTINCT node.nid AS nid, (If there are multiple candidates, we would like all of them).
| ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Arjen Lentz [ 2013-11-22 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
Interesting - that looks like Drupal 6 query. Other deployments where we observed the leak don't use Drupal, but it's good to see that we can catch at least one aspect of the problem in this way. We'll find out what the full query is. I don't see another patch? | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Daniel Black [ 2013-11-22 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
drupal mysqldump --no-data | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Daniel Black [ 2013-11-22 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
'''# Time: 131121 10:35:06
MariaDB [oq_drupal]> explain ^MSELECT DISTINCT node.nid AS nid,
-----
----- '' Don't worry - patch is still applied. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Daniel Black [ 2013-11-22 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
SELECT DISTINCT node.nid AS nid, | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Daniel Black [ 2013-11-22 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
( cat /var/log/mysql/mariadb-slow.log.1 ; zcat /var/log/mysql/mariadb-slow.log*z ) | grep | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Daniel Black [ 2013-11-22 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
see drupal_data_MDEV4974.sql in private ftp for extracted tables relevant to these query. users data is just uid and a name in a form. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Sergei Petrunia [ 2013-11-23 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
Ok, I was able to repeat the leak with the provided data. Thanks a lot! | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Sergei Petrunia [ 2013-11-23 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
The query plan uses "Using temporary; Using filesort" and "Distinct". What that means: I am not sure who didn't free what init_read_record() has allocated. Will need to debug further. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Arjen Lentz [ 2013-11-25 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
Awesome Sergei, glad to hear you were able to replicate the prob using the data provided by us. One question that will of course be interesting to know the answer to is when and where the problem was introduced. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Daniel Black [ 2013-12-01 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
Hey Sergei. Any luck isolating which function should free the init_read_record allocation? | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Sergei Petrunia [ 2013-12-04 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
Hi Daniel, I'll need to debug to find out which part of the code fails to free the memory. This bug is at the top of my todo, but I am currently on vacation and is unable to work on it. I hope to start working on it at around Dec, 16th. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Daniel Black [ 2013-12-31 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
I'm glad you weren't working on it on your vacation and I hope you enjoyed yourself. If there's anything I can help with now that you're back please let me know. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Sergei Petrunia [ 2014-01-02 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
Thanks for the ping. I have investigated the problem: | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Sergei Petrunia [ 2014-01-02 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
The EXPLAIN is:
It means, execution proceeds as follows: (the above is valid for both MariaDB and MySQL) | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Sergei Petrunia [ 2014-01-02 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
MySQL code traditionally had a weak spot. On step #1, JOIN::join_tab referred to the original base tables (node, users, node_comment_statistics, na). Before step #5, the executor would set JOIN::join_tab to point to an array of one element, with temptable created on step#2. The original array was gone, though, which caused problems for EXPLAIN and didn't allow to implement SHOW EXPLAIN (or EXPLAIN FOR CONNECTION). MariaDB has solved this problem in the following cset: timour@askmonty.org-20120821122443-ut07mf3z3194ch5d The fix backports from MWL#182: Explain running statements the logic that The idea of the fix was to have two JOIN_TAB arrays (grep for WALK_OPTIMIZATION_TABS and WALK_EXECUTION_TABS). However, we have introduced this bug - we don't call JOIN_TAB::cleanup() for the JOIN_TAB that reads from the temp. table. This works typically (most query plans will just read the temp. table). However, when reading from temporary table employs init_rr_cache() and rr_from_cache() functions, one must free the cache afterwards. MariaDB didn't do this, which caused this bug. I suspect, MySQL 5.6 also faced this problem. They have made this change: evgeny.potemkin@oracle.com-20120531162137-iq3wjp1dppk17syi they don't create two JOIN_TAB arrays. Instead, they extend the original join_tab array, and put the join_tab element that reads from temp.table at the very end of that array. I'm not sure which approach is better (WL#6071 is not public, so I need to guess about Evgen's reasoning) but one consequence is that MySQL 5.6 does not have an analog of this bug. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Sergei Petrunia [ 2014-01-03 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
This fix makes the leak go away. I think, it needs a round of testing, the join cleanup area doesnt have a clear architecture so I could be missing something. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Sergei Petrunia [ 2014-01-03 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
Elena, could you please test 5.5 tree, patched with psergey-fix-mdev4954.diff ? | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Elena Stepanova [ 2014-01-05 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
The first round of tests went well, running the next one, now with valgrind. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Sergei Petrunia [ 2014-01-14 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
Asked Sanja to review the patch | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Oleksandr Byelkin [ 2014-01-16 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
The patch is OK to push. I 100% sure that I already faced problem of non-cleanup table_access_tabs (you even found flaw in my firat patch), but I can't find results (probably it was not pushed or passed to you). | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Sergei Petrunia [ 2014-01-21 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
Fix pushed into 5.5 tree (I have made a smaller testcase that could be included into mysql-test). | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Sergei Petrunia [ 2014-01-21 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
Daniel, thanks a lot for reporting this, and for all the input that allowed us to pin down and fix the problem! | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Daniel Black [ 2014-01-22 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
Thanks Sergei, Sanja, and Elena for the fix. Looking forward to a DB that doesn't leak memory and all the other cool stuff and fixes you've done over last months (and years really). http://bazaar.launchpad.net/~maria-captains/maria/5.5/revision/4013 | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Elena Stepanova [ 2014-01-23 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
Here is the smallest test case based on Daniel's data that I could come up so far. Sergei, could you please take a look and if it is good enough, use it as a bugfix test case (I checked that the valgrind error it causes disappeared after the bugfix, but I'm not sure it's the main target problem and not just a side-effect). CREATE TABLE t1 (a VARCHAR(32000) DEFAULT '', b VARCHAR(32000), id INT); CREATE TABLE t2 (c VARCHAR(60) NOT NULL, id INT(10)); SELECT DISTINCT * FROM t1 INNER JOIN t2 ON t1.id = t2.id ORDER BY t1.b; | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Daniel Bartholomew [ 2014-01-29 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
http://bazaar.launchpad.net/~maria-captains/maria/5.5/revision/4013 | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Daniel Black [ 2014-01-30 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
been running 5.5.35 for 7 hrs now and no memory leaks. It would of leaked about 100M previously. Definitely fixed and thanks gain. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Sergei Petrunia [ 2014-01-30 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
So, it is really fixed. Thanks for the confirmation. |