Author |
Message |
novw Board Member
Joined: 14 Nov 2011
Posts: 15
|
Posted: Mon Dec 10, 2012 12:17 pm Post subject: unable to moderate topics with more than 31 pages |
|
|
See topic title. As soon as I have (about) 800 posts (30+ pages with 25 posts per page), I can no longer moderate or split he topic. I have to resort to clicking X on single posts till the total count in that topic goes below (~)800 posts.
When I have so lowered the number of posts the moderate link (http://......../forum/modcp.php?mode=split&t=..........) will work again and I can split the topic now.
Is there a sollution? Somehow? Thanks!!!
|
|
Back to top |
|
|
novw Board Member
Joined: 14 Nov 2011
Posts: 15
|
Posted: Mon Dec 10, 2012 12:19 pm Post subject: Re: unable to moderate topics with more than 31 pages |
|
|
Maybe this error is somehow related:
Quote: |
Could not update user post count information
DEBUG MODE
SQL Error : 1690 BIGINT UNSIGNED value is out of range in '(`kerstdorp_forum`.`phpbb_users`.`user_posts` - 3)'
SELECT poster_id, COUNT(post_id) AS posts FROM phpbb_posts WHERE topic_id IN (7232) GROUP BY poster_id
Line : 296
File : modcp.php
|
|
|
Back to top |
|
|
dogs and things Board Member
Joined: 18 Nov 2008
Posts: 628 Location: Spain
|
Posted: Tue Dec 11, 2012 5:23 pm Post subject: Re: unable to moderate topics with more than 31 pages |
|
|
Hi,
Have a read of Out-of-Range and Overflow Handling.
_________________ phpBB2 will never die, I hope! |
|
Back to top |
|
|
novw Board Member
Joined: 14 Nov 2011
Posts: 15
|
Posted: Wed Dec 12, 2012 9:20 am Post subject: Re: unable to moderate topics with more than 31 pages |
|
|
Jippie... Ouch...
I've read it... That unfortunately does not mean I understand it... Well. Sort of I guess. Something to do with large numbers
Now for the 64000 dollar question... Can it be solved in phpBB2? Or is it one of those things I have to learn to live with?
|
|
Back to top |
|
|
dogs and things Board Member
Joined: 18 Nov 2008
Posts: 628 Location: Spain
|
Posted: Wed Dec 12, 2012 10:04 am Post subject: Re: unable to moderate topics with more than 31 pages |
|
|
Well, I am not very bright when it comes to Mysql and I believe to have understood your problem might have to do with the version of Mysql you are running and whether strict SQL mode is enabled.
What is the version of Mysql you are running on?
Hopefully someone who understands more of Mysql jumps in here.
_________________ phpBB2 will never die, I hope! |
|
Back to top |
|
|
novw Board Member
Joined: 14 Nov 2011
Posts: 15
|
Posted: Wed Dec 12, 2012 11:16 am Post subject: Re: unable to moderate topics with more than 31 pages |
|
|
As far as I can find:
MySQL Support enabled
Active Persistent Links 0
Active Links 0
Client API version 5.5.9
MYSQL_MODULE_TYPE external
MYSQL_SOCKET /tmp/mysql.sock
MYSQL_INCLUDE -I/usr/local/mysql/include
MYSQL_LIBS -L/usr/local/mysql/lib -lmysqlclient
So, that looks up-to-date.
|
|
Back to top |
|
|
Salvatos Board Member
Joined: 19 Feb 2009
Posts: 449 Location: Québec
|
Posted: Wed Dec 12, 2012 1:36 pm Post subject: Re: unable to moderate topics with more than 31 pages |
|
|
What I don't get is that from what I understand from that page, the user_posts value would have to be ludicrously high to prompt that error. Does one of your users have more than 18446744073709551615 posts?
You say you "can't moderate" a thread with more than 800 posts in it... what happens if you try, exactly?
Can you post the ~70 lines leading up to 296 (starting at switch( $mode ))?
As for the error you copied, I'm assuming you get it when you delete posts individually, judging from where it appears in the code. Does the deletion work regardless?
May I ask how many users/posts you have on your boards?
|
|
Back to top |
|
|
novw Board Member
Joined: 14 Nov 2011
Posts: 15
|
Posted: Wed Dec 12, 2012 7:22 pm Post subject: Re: unable to moderate topics with more than 31 pages |
|
|
I am guessing the error is from something different? No way anybody has that amount of posts... My first focus is on the "mass deletetion" tool/option. i.e. Moderation tool. In other words (geez) mass select a ton of posts and delete them.
When we try the moderation mass-select the board does not give an error. The site does.
step by step steps.
forum (duh)
select area (?) / section (?) /
select "moderate" (now we go to http://www.nl/forum/modcp.php?f=14&start=0&sid= ... )
now select a topic with more than 30 pages (now we go to http://www.nl/forum/modcp.php?mode=split&t=9567&sid= ... )
The SITE now gives:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request www.kerstdorpen.nl
PHPbb does not pick it up.
As for "stats":
De gebruikers hebben in totaal 105666 berichten geplaatst (=number of messages)
We hebben 1092 geregistreerde gebruikers (=number of users)
------
this just in, thanks to my SUPERB team of mods:
The error DEBUG MODE SQL Error : 1690
pops up when I try to delete a topic in one go ( http://www.nl/forum/modcp.php?t=11326&mode=delete&sid=... ) when and if that topic has more than 50 pages.
Recap: So, two things, right? But both have to do with deleting of posts. One is trying to remove multiple single posts from a topic. Second is deleting an entire topic with more than (~)50 pages.
As per request:
Code: | switch( $mode )
{
case 'delete':
if (!$is_auth['auth_delete'])
{
message_die(GENERAL_MESSAGE, sprintf($lang['Sorry_auth_delete'], $is_auth['auth_delete_type']));
}
$page_title = $lang['Mod_CP'];
include($phpbb_root_path . 'includes/page_header.'.$phpEx);
if ( $confirm )
{
if ( empty($HTTP_POST_VARS['topic_id_list']) && empty($topic_id) )
{
message_die(GENERAL_MESSAGE, $lang['None_selected']);
}
include($phpbb_root_path . 'includes/functions_search.'.$phpEx);
$topics = ( isset($HTTP_POST_VARS['topic_id_list']) ) ? $HTTP_POST_VARS['topic_id_list'] : array($topic_id);
$topic_id_sql = '';
for($i = 0; $i < count($topics); $i++)
{
$topic_id_sql .= ( ( $topic_id_sql != '' ) ? ', ' : '' ) . intval($topics[$i]);
}
$sql = "SELECT topic_id
FROM " . TOPICS_TABLE . "
WHERE topic_id IN ($topic_id_sql)
AND forum_id = $forum_id";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not get topic id information', '', __LINE__, __FILE__, $sql);
}
$topic_id_sql = '';
while ($row = $db->sql_fetchrow($result))
{
$topic_id_sql .= (($topic_id_sql != '') ? ', ' : '') . intval($row['topic_id']);
}
$db->sql_freeresult($result);
if ( $topic_id_sql == '')
{
message_die(GENERAL_MESSAGE, $lang['None_selected']);
}
$sql = "SELECT poster_id, COUNT(post_id) AS posts
FROM " . POSTS_TABLE . "
WHERE topic_id IN ($topic_id_sql)
GROUP BY poster_id";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not get poster id information', '', __LINE__, __FILE__, $sql);
}
$count_sql = array();
while ( $row = $db->sql_fetchrow($result) )
{
$count_sql[] = "UPDATE " . USERS_TABLE . "
SET user_posts = user_posts - " . $row['posts'] . "
WHERE user_id = " . $row['poster_id'];
}
$db->sql_freeresult($result);
if ( sizeof($count_sql) )
{
for($i = 0; $i < sizeof($count_sql); $i++)
{
if ( !$db->sql_query($count_sql[$i]) )
{
message_die(GENERAL_ERROR, 'Could not update user post count information', '', __LINE__, __FILE__, $sql);
}
}
}
|
Thank you for any and all help!
|
|
Back to top |
|
|
Salvatos Board Member
Joined: 19 Feb 2009
Posts: 449 Location: Québec
|
Posted: Thu Dec 13, 2012 1:30 am Post subject: Re: unable to moderate topics with more than 31 pages |
|
|
Your internal server error is probably a timeout, either from PHP or MySQL. Not much we can do about that in the code as far as I know, so you'd have to increase your limits in your configuration.
As for 1690, have you confirmed that this happens on more than one topic? Considering that unsigned bigints have a minimum value of 0, I'm thinking there might be an issue with a particular user in a particular thread that causes the code to try and insert something like "0 - 3". Can you try changing
Code: | message_die(GENERAL_ERROR, 'Could not update user post count information', '', __LINE__, __FILE__, $sql); |
into
Code: | message_die(GENERAL_ERROR, 'Could not update user post count information for user '.$row['poster_id'], '', __LINE__, __FILE__, $count_sql[$i]); |
temporarily to see where the operation fails? Please post the resulting error and check 1) that user's post count and 2) how many posts that user has in the thread you're deleting. This should allow us to see if the data is what it should be. If it is, we know that there's an issue fetching it (maybe a more discreet timeout if this does happen in any large thread), and if it's not we can try to figure out why.
|
|
Back to top |
|
|
novw Board Member
Joined: 14 Nov 2011
Posts: 15
|
Posted: Fri Dec 14, 2012 5:20 pm Post subject: Re: unable to moderate topics with more than 31 pages |
|
|
I have opened a topic on my board where I call for posts I do not have a topic with 50+ pages available for deleting, so we have to wait till we have gathered a topic with that amount of posts to test.
(edit: we have hit 15 pages in 15 minutes Thjs is turning in to a fun challenge )
|
|
Back to top |
|
|
Holger Board Member
Joined: 19 Jan 2009
Posts: 509 Location: Hanover
|
Posted: Tue Jan 01, 2013 10:42 am Post subject: Re: unable to moderate topics with more than 31 pages |
|
|
(I have topics with far more pages working correctly.)
_________________ Love your data! Back it up! |
|
Back to top |
|
|
novw Board Member
Joined: 14 Nov 2011
Posts: 15
|
Posted: Wed Jan 02, 2013 9:51 pm Post subject: Re: unable to moderate topics with more than 31 pages |
|
|
I may be a bit closer to the reason for the problem. Hang on: this is going to be a fun ride:
We had a few problems with a specific user on the board, and (long story) I ended up deleting that user. Completely. Not "inactive", Not "banned", nope: deleted. From within the forum. Not thru SQL magic.
Now we have discovered, a topic with 50+ pages can be moderated and can be deleted. UNLESS (!) that deleted user posted somewhere in that topic!
So... Since we have 91085 posts on the board and there is no way to locate any posts by that ex-member (seacrh for "poster" comes up empty, search for "the name" pops up 100's of results, that member was center of some heavy debate) I change my question
How can I locate posts made on my forum made by a member that is no longer a member, and is now categorized as a guest on the forum?
I understand the problem now (deleting a post by an unknown user is pretty darn difficult), now for the sollution? One sollution I found was to relocate the entire thread to a seperate forum (ex. forum/viewforum.php?f=45), and than delete the entire forum #45. That seems to work...
Description: |
|
Filesize: |
5.34 KB |
Viewed: |
38347 Time(s) |
|
|
|
Back to top |
|
|
Salvatos Board Member
Joined: 19 Feb 2009
Posts: 449 Location: Québec
|
Posted: Thu Jan 03, 2013 2:55 pm Post subject: Re: unable to moderate topics with more than 31 pages |
|
|
If you can locate one of his posts, I think you should still be able to see his IP. With this you can manually search the relevant tables to remove associated entries (posts, posts_text, etc.). Keep in mind that he probably had more than one throughout his stay, so you won't get everything at once.
However I'm surprised that you can't search for his name. I have a member who deleted his account at one point and made a new one, and I can find his old posts using an author search along with his new account's posts. His username also shows up in the 'posts' table even where his userid is -1.
|
|
Back to top |
|
|
novw Board Member
Joined: 14 Nov 2011
Posts: 15
|
Posted: Sat Jan 05, 2013 11:28 am Post subject: Re: unable to moderate topics with more than 31 pages |
|
|
Manually as per mysql? Big nono on that idea I am too dumb to use that
The member name no longer exists. It was not them deleting their account, it was me. What we now have figured out is we can delete single posts, if and when we do that twice (??) in other words, find a post made by the ghost member, press the X (delete singe post), get an error, go page back, press the X again, and the post is now reported as non-existing. It is gone. And thats what we want...
It is a drag, but fortunately as far as we can see now it is a relatively quick sollution.
It ofcourse has no sense to report this as a bug in PHPbb, right?
|
|
Back to top |
|
|
|