Thread: Usenet gateway
View Single Post
  #73  
Old 02-13-2001, 09:39 PM
Guest
 
Posts: n/a
Default

OK... looks like you have uncovered a little buggette. I think the problem is this.

When a usenet article is received that will become the thread starter, an entry is made in the thread table. The statement that does this is on line 264 and uses the INSERT IGNORE clause to prevent any possibility of duplicate messages if your news server decides to reindex and change message numbers on you.

However, the side effect to this is should the statement ever actually be ignored due to a duplicate messageid, the next line that gets the mysql_insertid will return null as nothing was actually inserted. So consequently, when it tries to put the corresponding entry into the post table on line 266, it will fail because threadid in the post table is specified as NOT NULL.

Now this is all very well and is easy to fix, but the real issue is why you came across a duplicate. The message id column is supposedly unique across all of usenet. You mentioned you tried again by emptying out the usenet_article table first. If so, the only way a duplicate could occur would be if the article came twice with the same messageid from your news server. But even this shouldn't matter as the usenet_article table has a unique index on the 'msgid' column.

I'll fix the script and post it in about an hour. In the meantime, check the following:
  • make sure the only unique keys on the thread table are 'threadid' and 'msgid'
  • make sure the usenet_article table has a unique index on 'msgid'
regards
PAJ
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01251 seconds
  • Memory Usage 1,758KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • showpost_complete