Jcrespo has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/276011

Change subject: Update slave events; add master events
......................................................................

Update slave events; add master events

Change-Id: Ibb84ac6bd76fffcdd186805fa578b58d855ad50e
---
A dbtools/watchdog-master-events.sql
R dbtools/watchdog-slave-events.sql
2 files changed, 83 insertions(+), 4 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/operations/software 
refs/changes/11/276011/1

diff --git a/dbtools/watchdog-master-events.sql 
b/dbtools/watchdog-master-events.sql
new file mode 100644
index 0000000..52788a7
--- /dev/null
+++ b/dbtools/watchdog-master-events.sql
@@ -0,0 +1,77 @@
+use ops;
+
+SET session sql_log_bin=0;
+
+DROP EVENT IF EXISTS `wmf_slave_overload`;
+DROP EVENT IF EXISTS `wmf_slave_purge`;
+DROP EVENT IF EXISTS `wmf_slave_wikiuser_sleep`;
+DROP EVENT IF EXISTS `wmf_slave_wikiuser_slow`;
+DROP EVENT IF EXISTS `wmf_master_purge`;
+DROP EVENT IF EXISTS `wmf_master_wikiuser_sleep`;
+
+DELIMITER //
+
+CREATE DEFINER=`root`@`localhost` EVENT `wmf_master_purge` ON SCHEDULE EVERY 
15 MINUTE STARTS '2014-08-26 00:00:00' ON COMPLETION NOT PRESERVE ENABLE DO 
begin
+
+        declare sid int;
+
+        set sid := @@server_id;
+
+        delete from event_log where stamp < now() - interval 1 day and 
server_id = sid;
+
+    end
+//
+
+CREATE DEFINER=`root`@`localhost` EVENT `wmf_master_wikiuser_sleep` ON 
SCHEDULE EVERY 30 SECOND STARTS '2014-08-26 00:00:05' ON COMPLETION NOT 
PRESERVE ENABLE DO begin
+
+        declare sid int;
+        declare all_done int default 0;
+        declare thread_id bigint default null;
+
+        declare threads_sleeping cursor for
+            select ps.id
+            from information_schema.processlist ps
+            where ps.command = 'Sleep'
+                and ps.user = 'wikiuser'
+                and ps.time between 300 and 1000000
+                and ps.info is null
+            order by ps.time desc;
+
+        declare continue handler for not found set all_done = 1;
+
+        if (get_lock('wmf_master_wikiuser_sleep', 1) = 0) then
+            signal sqlstate value '45000' set message_text = 'get_lock';
+        end if;
+
+        set sid := @@server_id;
+        set @@session.sql_log_bin = 0;
+
+        set all_done = 0;
+        open threads_sleeping;
+
+        repeat fetch threads_sleeping into thread_id;
+
+            if (thread_id is not null) then
+
+                kill thread_id;
+
+                insert into event_log values (sid, now(), 
'wmf_master_wikiuser_sleep',
+                    concat('kill ',thread_id)
+                );
+
+            end if;
+
+            until all_done
+        end repeat;
+
+        close threads_sleeping;
+
+        
+        select 1 from (select 1) as t;
+
+        do release_lock('wmf_master_wikiuser_sleep');
+
+    end
+//
+
+DELIMITER ;
diff --git a/dbtools/watchdog-events.sql b/dbtools/watchdog-slave-events.sql
similarity index 95%
rename from dbtools/watchdog-events.sql
rename to dbtools/watchdog-slave-events.sql
index 34ec678..6adc25a 100644
--- a/dbtools/watchdog-events.sql
+++ b/dbtools/watchdog-slave-events.sql
@@ -2,10 +2,12 @@
 
 SET session sql_log_bin=0;
 
-DROP EVENT `wmf_slave_overload`;
-DROP EVENT `wmf_slave_purge`;
-DROP EVENT `wmf_slave_wikiuser_sleep`;
-DROP EVENT `wmf_slave_wikiuser_slow`;
+DROP EVENT IF EXISTS `wmf_slave_overload`;
+DROP EVENT IF EXISTS `wmf_slave_purge`;
+DROP EVENT IF EXISTS `wmf_slave_wikiuser_sleep`;
+DROP EVENT IF EXISTS `wmf_slave_wikiuser_slow`;
+DROP EVENT IF EXISTS `wmf_master_purge`;
+DROP EVENT IF EXISTS `wmf_master_wikiuser_sleep`;
 
 DELIMITER //
 

-- 
To view, visit https://gerrit.wikimedia.org/r/276011
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ibb84ac6bd76fffcdd186805fa578b58d855ad50e
Gerrit-PatchSet: 1
Gerrit-Project: operations/software
Gerrit-Branch: master
Gerrit-Owner: Jcrespo <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to