Bug #44115 purge_relay_logs doesn't return an error when count_relay_log_space fails
| Submitted: | 6 Apr 2009 17:01 | Modified: | 13 Jul 2009 11:58 |
|---|---|---|---|
| Reporter: | Mark Callaghan | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: Replication | Severity: | S3 (Non-critical) |
| Version: | 5.0,5.1,6.0 | OS: | Any |
| Assigned to: | Andrei Elkin | CPU Architecture: | Any |
| Tags: | replication | ||
[6 Apr 2009 17:11]
Valeriy Kravchuk
Thank you for the bug report. Verified by code review. Indeed, looks like assignment to local variable error is just missed in sql/slave.cc (5.0) and sql/rpl_rli.cc (5.1) for this case.
[9 Jul 2009 7:08]
Andrei Elkin
The issue is actually fixed in 6.0 as combination of alfranio.correia@sun.com-20090402161414-apde4ev9rhlxcuet and a patch for Bug#41902.
[9 Jul 2009 7:33]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/78264 3015 Andrei Elkin 2009-07-09 Bug #44115 purge_relay_logs doesn't return an error when count_relay_log_space fails purge_relay_logs() did not propagate an error happend in count_relay_log_space(). Fixed with the suggestesd setting the error= true. Note, propagation generally out of purge_relay_logs() was fixed for Bug #44179, and the issue does not exist in 6.0 thanks to a patch for WL#2775.
[10 Jul 2009 11:20]
Bugs System
Pushed into 5.4.4-alpha (revid:anozdrin@bk-internal.mysql.com-20090710111017-bnh2cau84ug1hvei) (version source revid:alfranio.correia@sun.com-20090709115409-5lav77omuqx8hc0n) (merge vers: 5.4.4-alpha) (pib:11)
[13 Jul 2009 11:58]
Jon Stephens
Documented bugfix in the 5.4.4 changelog as follows:
The internal function purge_relay_logs() did not propagate an error
occurring in another internal function count_relay_log_space().
[13 Jul 2009 17:48]
Bugs System
Pushed into 5.1.37 (revid:joro@sun.com-20090713174543-cd2x7q1gi1hzoand) (version source revid:staale.smedseng@sun.com-20090710151930-6e6kq5tp7ux1rtbh) (merge vers: 5.1.37) (pib:11)
[12 Aug 2009 22:01]
Paul DuBois
Noted in 5.4.2 changelog because next 5.4 version will be 5.4.2 and not 5.4.4.
[14 Aug 2009 22:51]
Paul DuBois
Ignore previous comment about 5.4.2.
[26 Aug 2009 13:45]
Bugs System
Pushed into 5.1.37-ndb-7.0.8 (revid:jonas@mysql.com-20090826132541-yablppc59e3yb54l) (version source revid:jonas@mysql.com-20090826132541-yablppc59e3yb54l) (merge vers: 5.1.37-ndb-7.0.8) (pib:11)
[26 Aug 2009 13:46]
Bugs System
Pushed into 5.1.37-ndb-6.3.27 (revid:jonas@mysql.com-20090826105955-bkj027t47gfbamnc) (version source revid:jonas@mysql.com-20090826105955-bkj027t47gfbamnc) (merge vers: 5.1.37-ndb-6.3.27) (pib:11)
[26 Aug 2009 13:48]
Bugs System
Pushed into 5.1.37-ndb-6.2.19 (revid:jonas@mysql.com-20090825194404-37rtosk049t9koc4) (version source revid:jonas@mysql.com-20090825194404-37rtosk049t9koc4) (merge vers: 5.1.37-ndb-6.2.19) (pib:11)
[27 Aug 2009 16:32]
Bugs System
Pushed into 5.1.35-ndb-7.1.0 (revid:magnus.blaudd@sun.com-20090827163030-6o3kk6r2oua159hr) (version source revid:jonas@mysql.com-20090826132541-yablppc59e3yb54l) (merge vers: 5.1.37-ndb-7.0.8) (pib:11)
[7 Oct 2009 1:48]
Paul DuBois
The 5.4 fix has been pushed into 5.4.2.
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.078 sec. using MySQL 8.4.7-u6-cloud
Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the
respective copyright holders.
It is not reviewed in advance
by Oracle and does not necessarily represent the opinion of
Oracle or any other party.
Description: Is this by design? In 5.1, purge_relay_logs has this code that branches to 'err:' without setting 'error=1'. Earlier in purge_relay_logs, code that branches to 'err:' sets 'error=1'. When not set here, purge_relay_logs returns 0 even though count_relay_log_space failed. if (count_relay_log_space(rli)) { *errmsg= "Error counting relay log space"; goto err; } <snip> err: #ifndef DBUG_OFF char buf[22]; #endif DBUG_PRINT("info",("log_space_total: %s",llstr(rli->log_space_total,buf))); pthread_mutex_unlock(&rli->data_lock); DBUG_RETURN(error); } How to repeat: NA