[dw-free] Get rid of NEW_ENTRY_CLEANUP_HACK
[commit: http://hg.dwscoalition.org/dw-free/rev/224ca2685a61]
http://bugs.dwscoalition.org/show_bug.cgi?id=1225
Clean up the cleanup hack
Patch by
sophie.
Files modified:
http://bugs.dwscoalition.org/show_bug.cgi?id=1225
Clean up the cleanup hack
Patch by
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Files modified:
- cgi-bin/LJ/ConfCheck/General.pm
- cgi-bin/ljdefaults.pl
- cgi-bin/ljprotocol.pl
- doc/raw/build/ljconfig/ljconfig2db.pl
-------------------------------------------------------------------------------- diff -r c82e50960a23 -r 224ca2685a61 cgi-bin/LJ/ConfCheck/General.pm --- a/cgi-bin/LJ/ConfCheck/General.pm Sat May 16 11:32:24 2009 +0000 +++ b/cgi-bin/LJ/ConfCheck/General.pm Sat May 16 12:00:45 2009 +0000 @@ -320,11 +320,6 @@ add_conf('$NEWUSER_CAPS', add_conf('$NEWUSER_CAPS', type => 'int', des => "Bitmask of capability classes that new users begin their accounts with. By default users aren't in any capability classes and get only the default site-wide capabilities. See also \%CAP.", - ); - -add_conf('$NEW_ENTRY_CLEANUP_HACK', - type => "bool", - des => "OLD HISTORIC BAGGAGE: Do not use! There used to be a bug where only parts of entries got deleted, then there was another bug with per-user number allocation. Together, they forced this option to be made for awhile, where new entries (when this is on) would blow away any old data if part of it was still there but wasn't supposed to be. This includes deleting comments tied to those old entries.", ); add_conf('$QBUFFERD_DELAY', diff -r c82e50960a23 -r 224ca2685a61 cgi-bin/ljdefaults.pl --- a/cgi-bin/ljdefaults.pl Sat May 16 11:32:24 2009 +0000 +++ b/cgi-bin/ljdefaults.pl Sat May 16 12:00:45 2009 +0000 @@ -142,10 +142,6 @@ # maximum number of friendofs to load/memcache (affects userinfo.bml display) $MAX_FRIENDOF_LOAD ||= 5000; - - # whether to proactively delete any comments associated with an entry when we assign - # a new jitemid (see the big comment above LJ::Protocol::new_entry_cleanup_hack) - $NEW_ENTRY_CLEANUP_HACK ||= 0; # block size is used in stats generation code that gets n rows from the db at a time $STATS_BLOCK_SIZE ||= 10_000; diff -r c82e50960a23 -r 224ca2685a61 cgi-bin/ljprotocol.pl --- a/cgi-bin/ljprotocol.pl Sat May 16 11:32:24 2009 +0000 +++ b/cgi-bin/ljprotocol.pl Sat May 16 12:00:45 2009 +0000 @@ -23,10 +23,6 @@ use lib "$LJ::HOME/cgi-bin"; use lib "$LJ::HOME/cgi-bin"; require "taglib.pl"; - -# have to do this else mailgate will croak with email posting, but only want -# to do it if the site has enabled the hack -require "talklib.pl" if $LJ::NEW_ENTRY_CLEANUP_HACK; #### New interface (meta handler) ... other handlers should call into this. package LJ::Protocol; @@ -1357,10 +1353,6 @@ sub postevent LJ::Entry->can("dostuff"); LJ::replycount_do($uowner, $jitemid, "init"); - # remove comments and logprops on new entry ... see comment by this sub for clarification - LJ::Protocol::new_entry_cleanup_hack($u, $jitemid) if $LJ::NEW_ENTRY_CLEANUP_HACK; - my $verb = $LJ::NEW_ENTRY_CLEANUP_HACK ? 'REPLACE' : 'INSERT'; - my $dberr; $uowner->log2_do(\$dberr, "INSERT INTO log2 (journalid, jitemid, posterid, eventtime, logtime, security, ". "allowmask, replycount, year, month, day, revttime, rlogtime, anum) ". @@ -1417,7 +1409,7 @@ sub postevent my $bytes = length($event) + length($req->{'subject'}); $uowner->dudata_set('L', $jitemid, $bytes); - $uowner->do("$verb INTO logtext2 (journalid, jitemid, subject, event) ". + $uowner->do("INSERT INTO logtext2 (journalid, jitemid, subject, event) ". "VALUES ($ownerid, $jitemid, ?, ?)", undef, $req->{'subject'}, LJ::text_compress($event)); if ($uowner->err) { @@ -2769,43 +2761,6 @@ sub fail return undef; } -# PROBLEM: a while back we used auto_increment fields in our tables so that we could have -# automatically incremented itemids and such. this was eventually phased out in favor of -# the more portable alloc_user_counter function which uses the 'counter' table. when the -# counter table has no data, it finds the highest id already in use in the database and adds -# one to it. -# -# a problem came about when users who last posted before alloc_user_counter went -# and deleted all their entries and posted anew. alloc_user_counter would find no entries, -# this no ids, and thus assign id 1, thinking it's all clean and new. but, id 1 had been -# used previously, and now has comments attached to it. -# -# the comments would happen because there was an old bug that wouldn't delete comments when -# an entry was deleted. this has since been fixed. so this all combines to make this -# a necessity, at least until no buggy data exist anymore! -# -# this code here removes any comments that happen to exist for the id we're now using. -sub new_entry_cleanup_hack { - my ($u, $jitemid) = @_; - - # sanitize input - $jitemid += 0; - return unless $jitemid; - my $ownerid = LJ::want_userid($u); - return unless $ownerid; - - # delete logprops - $u->do("DELETE FROM logprop2 WHERE journalid=$ownerid AND jitemid=$jitemid"); - - # delete comments - my $ids = LJ::Talk::get_talk_data($u, 'L', $jitemid); - return unless ref $ids eq 'HASH' && %$ids; - my $list = join ',', map { $_+0 } keys %$ids; - $u->do("DELETE FROM talk2 WHERE journalid=$ownerid AND jtalkid IN ($list)"); - $u->do("DELETE FROM talktext2 WHERE journalid=$ownerid AND jtalkid IN ($list)"); - $u->do("DELETE FROM talkprop2 WHERE journalid=$ownerid AND jtalkid IN ($list)"); -} - sub un_utf8_request { my $req = shift; $req->{$_} = LJ::no_utf8_flag($req->{$_}) foreach qw(subject event); diff -r c82e50960a23 -r 224ca2685a61 doc/raw/build/ljconfig/ljconfig2db.pl --- a/doc/raw/build/ljconfig/ljconfig2db.pl Sat May 16 11:32:24 2009 +0000 +++ b/doc/raw/build/ljconfig/ljconfig2db.pl Sat May 16 12:00:45 2009 +0000 @@ -1159,9 +1159,6 @@ Please see <a href='http://status.exa 'fix_usercounter_enabled' => { 'desc' => "<emphasis role='strong'>Old historic baggage: Do not use.</emphasis> This boolean enables the <filename>fix_usercounter.bml</filename> tool at \$SITEROOT/admin. The tool reset user counters to resolve <quote>duplicate key error</quote> issues with journals. A better way to address the problem was found, making this tool redundant.", }, - 'new_entry_cleanup_hack' => { - 'desc' => "<emphasis role='strong'>Old historic baggage: Do not use.</emphasis> There used to be a bug where only parts of entries got deleted, then there was another bug with per-user number allocation. Together, they forced this option to be made for awhile, where new entries (when this is on) would blow away any old data if part of it was still there but wasn't supposed to be. This includes deleting comments tied to those old entries. Off by default.", - }, }, 'site_maintenance' => { --------------------------------------------------------------------------------