r106734 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r106733‎ | r106734 | r106735 >
Date:00:10, 20 December 2011
Author:aaron
Status:deferred
Tags:
Comment:
Improved the session uniqueness in DBLockManger
Modified paths:
  • /branches/FileBackend/phase3/includes/filerepo/backend/lockmanager/DBLockManager.php (modified) (history)
  • /branches/FileBackend/phase3/maintenance/locking/file_locks.sql (modified) (history)

Diff [purge]

Index: branches/FileBackend/phase3/maintenance/locking/file_locks.sql
@@ -6,6 +6,6 @@
77 -- Table to handle resource locking (SH) with row-level locking
88 CREATE TABLE /*_*/filelocks_shared (
99 fls_key binary(31) NOT NULL,
10 - fls_session integer unsigned NOT NULL,
 10+ fls_session binary(31) NOT NULL,
1111 PRIMARY KEY (fls_key,fls_session)
1212 ) ENGINE=InnoDB, CHECKSUM=0;
Index: branches/FileBackend/phase3/includes/filerepo/backend/lockmanager/DBLockManager.php
@@ -79,7 +79,11 @@
8080 }
8181 }
8282
83 - $this->session = mt_rand( 0, 2147483647 );
 83+ $this->session = '';
 84+ for ( $i = 0; $i < 5; $i++ ) {
 85+ $this->session .= mt_rand( 0, 2147483647 );
 86+ }
 87+ $this->session = wfBaseConvert( sha1( $this->session ), 16, 36, 31 );
8488 }
8589
8690 protected function doLock( array $keys, $type ) {

Status & tagging log