From: i18n <i1...@ya...> - 2002-08-17 20:08:52
|
My reinstall is complete, it was fairly uneventful: - rebuilt perl (note to author of install for dummies doc: you can' really remove perl as noed iin the doc - too many dependencies. Luckily the perl make asks if you want to copy the new perl form /usr/local to /usr/sbin where stuff expects it - I said yes) - rebuilt apache with mod_perl - installed Bundle::Slash (note : a newer Expat is needed by XML::Parser than I had... it took a while to figure out what I needed - a mention of this in install docs would be good) Now I am running the new apache build and I am still seeing the same kinds of errors in saveStory. So let's focus on the code a bit instead of the configuration. I did some testing and examination and I am kind of clear what is missing but I don't know why. the big issue seems to be that may saveStory in admin.pl is not recognizing the current user, and that is leading to sql errors. Thanks for your help! Barry --------------------------------------------------- here is my saveStory from admin.pl (2.0): ################################################################## sub saveStory { errorLog("--------------- entering saveStory -----------"); my $slashdb = getCurrentDB(); my $user = getCurrentUser(); my $form = getCurrentForm(); errorLog("--------------- finished getCurrentForm -----------"); errorLog(Dumper($form)); # my $user = $slashdb->getUser($form->{uid}); errorLog("-----------------------user=".Dumper($user)); #return; my $rootdir = getCurrentStatic('rootdir'); $form->{displaystatus} ||= 1 if $user->{section}; $form->{section} = $user->{section} if $user->{section}; $form->{dept} =~ s/ /-/g; $form->{relatedtext} = getRelated( "$form->{title} $form->{bodytext} $form->{introtext}" ) . otherLinks($user->{nickname}, $form->{tid}, $user->{uid}); $form->{writestatus} = 1 unless $form->{writestatus} == 10; my $sid = $slashdb->createStory($form); $slashdb->createDiscussion($sid, $form->{title}, $form->{'time'}, "$rootdir/article.pl?sid=$sid" ); titlebar('100%', getTitle('saveStory-title')); listStories(); } ################################################################# when this runs, the output looks like this: [Sun Aug 18 19:14:47 2002] [error] /admin.pl:Apache::ROOTwww_2ei18n_2ecom::admin_2epl:/usr/local/slash/site/slash/htdocs/admin.pl:54:--------------- entering saveStory ----------- [Sun Aug 18 19:14:47 2002] [error] Which was called by:Apache::ROOTwww_2ei18n_2ecom::admin_2epl:/usr/local/slash/site/slash/htdocs/admin.pl:1343:--------------- entering saveStory ----------- [Sun Aug 18 19:14:47 2002] [error] /admin.pl:Apache::ROOTwww_2ei18n_2ecom::admin_2epl:/usr/local/slash/site/slash/htdocs/admin.pl:54:--------------- finished getCurrentForm ----------- [Sun Aug 18 19:14:47 2002] [error] Which was called by:Apache::ROOTwww_2ei18n_2ecom::admin_2epl:/usr/local/slash/site/slash/htdocs/admin.pl:1343:--------------- finished getCurrentForm ----------- [Sun Aug 18 19:14:47 2002] [error] /admin.pl:Apache::ROOTwww_2ei18n_2ecom::admin_2epl:/usr/local/slash/site/slash/htdocs/admin.pl:54:$VAR1 = { 'section' => 'articles', 'dept' => undef, 'title' => 'rrrrsarwrew', 'displaystatus' => '0', 'op' => 'save', 'commentstatus' => '0', 'introtext' => 'lsjflksjfdlks', 'time' => '2002-08-18 12:14:19', 'tid' => '1', 'bodytext' => undef, 'writestatus' => '1' }; [Sun Aug 18 19:14:47 2002] [error] Which was called by:Apache::ROOTwww_2ei18n_2ecom::admin_2epl:/usr/local/slash/site/slash/htdocs/admin.pl:1343:$VAR1 = { 'section' => 'articles', 'dept' => undef, 'title' => 'rrrrsarwrew', 'displaystatus' => '0', 'op' => 'save', 'commentstatus' => '0', 'introtext' => 'lsjflksjfdlks', 'time' => '2002-08-18 12:14:19', 'tid' => '1', 'bodytext' => undef, 'writestatus' => '1' }; [Sun Aug 18 19:14:47 2002] [error] /admin.pl:Apache::ROOTwww_2ei18n_2ecom::admin_2epl:/usr/local/slash/site/slash/htdocs/admin.pl:54:-----------------------user=$VAR1 = { 'savechanges' => 0, 'lastgranted' => '0000-00-00', 'exaid' => '', 'commentsort' => 0, 'pubkey' => '', 'seclev' => '1000', 'lastmm' => '0000-00-00', 'passwd' => 'snipped', 'tzcode' => 'EDT', 'maxstories' => '30', 'currentPage' => 'admin', 'mode' => 'thread', 'nosigs' => '0', 'mylinks' => 'yadda', 'karma' => '53', 'copy' => '', 'uid' => '7', 'currentSection' => 'admin', 'realemail' => 'i18n-editor<despammedd>i18n.com', 'noicons' => '0', 'light' => 0, 'hardthresh' => '0', 'clbig' => '0', '-deletedsubmissions' => 'deletedsubmissions+1', 'totalmods' => '0', 'off_set' => '-14400', 'matchname' => 'i18neditor', 'reparent' => '1', 'noboxes' => 0, 'session_login' => '0', 'totalcomments' => '0', 'homepage' => 'http://www.i18n.com', 'maillist' => '0', 'newpasswd' => '', 'tokens' => '0', 'lang' => 'en_US', 'defaultpoints' => '1', 'lastmmid' => '0', 'm2unfairvotes' => '0', 'menus' => {}, 'bio' => '', 'downmods' => '0', 'fakeemail' => '', 'quote' => '', 'threshold' => 0, 'commentlimit' => '100', 'aton' => 'on', 'extid' => '', 'sig' => '', 'exsect' => '', 'maxcommentsize' => '4096', 'm2unfair' => '0', 'noscores' => '0', 'dfid' => '0', 'commentspill' => '50', 'points' => '0', 'format' => '%A %B %d, @%I:%M%p', 'realname' => '', 'nickname' => 'i18n-editor', 'clsmall' => '0', 'lastaccess' => '2002-08-12', 'bg' => [ 'white', 'whitesmoke', '#DDDDDD', '#003366', '#336633' ], 'highlightthresh' => '4', 'm2fairvotes' => '0', 'exboxes' => '\'mysite\'', 'breaking' => 0, 'willing' => '1', 'fg' => [ '#4e4e4e', '#3e3e3e', '#111111', '#3e3e3e', '#264F26' ], 'm2fair' => '0', 'posttype' => '2', 'author' => '0', 'is_admin' => 1, 'is_anon' => 0, 'upmods' => '0' }; [Sun Aug 18 19:14:47 2002] [error] Which was called by:Apache::ROOTwww_2ei18n_2ecom::admin_2epl:/usr/local/slash/site/slash/htdocs/admin.pl:1343:-----------------------user=$VAR1 = { 'savechanges' => 0, 'lastgranted' => '0000-00-00', 'exaid' => '', 'commentsort' => 0, 'pubkey' => '', 'seclev' => '1000', 'lastmm' => '0000-00-00', 'passwd' => 'snipped', 'tzcode' => 'EDT', 'maxstories' => '30', 'currentPage' => 'admin', 'mode' => 'thread', 'nosigs' => '0', 'mylinks' => 'yadda', 'karma' => '53', 'copy' => '', 'uid' => '7', 'currentSection' => 'admin', 'realemail' => 'i18n-editor<despammed>i18n.com', 'noicons' => '0', 'light' => 0, 'hardthresh' => '0', 'clbig' => '0', '-deletedsubmissions' => 'deletedsubmissions+1', 'totalmods' => '0', 'off_set' => '-14400', 'matchname' => 'i18neditor', 'reparent' => '1', 'noboxes' => 0, 'session_login' => '0', 'totalcomments' => '0', 'homepage' => 'http://www.i18n.com', 'maillist' => '0', 'newpasswd' => '', 'tokens' => '0', 'lang' => 'en_US', 'defaultpoints' => '1', 'lastmmid' => '0', 'm2unfairvotes' => '0', 'menus' => {}, 'bio' => '', 'downmods' => '0', 'fakeemail' => '', 'quote' => '', 'threshold' => 0, 'commentlimit' => '100', 'aton' => 'on', 'extid' => '', 'sig' => '', 'exsect' => '', 'maxcommentsize' => '4096', 'm2unfair' => '0', 'noscores' => '0', 'dfid' => '0', 'commentspill' => '50', 'points' => '0', 'format' => '%A %B %d, @%I:%M%p', 'realname' => '', 'nickname' => 'i18n-editor', 'clsmall' => '0', 'lastaccess' => '2002-08-12', 'bg' => [ 'white', 'whitesmoke', '#DDDDDD', '#003366', '#336633' ], 'highlightthresh' => '4', 'm2fairvotes' => '0', 'exboxes' => '\'mysite\'', 'breaking' => 0, 'willing' => '1', 'fg' => [ '#4e4e4e', '#3e3e3e', '#111111', '#3e3e3e', '#264F26' ], 'm2fair' => '0', 'posttype' => '2', 'author' => '0', 'is_admin' => 1, 'is_anon' => 0, 'upmods' => '0' }; names=sidvalues= '02/08/18/1914247'sql=INSERT INTO storiestuff (sid) VALUES( '02/08/18/1914247') names=section,dept,relatedtext,title,displaystatus,commentstatus,introtext,time,sid,tid,bodytext,writestatus,uidvalues= 'articles', NULL, '<LI><A HREF="/search.pl?topic=1">More on News</A></LI>\n<LI><A HREF="/search.pl?op=stories&author=7">Also by i18n-editor</A></LI>', 'rrrrsarwrew', '0', '0', 'lsjflksjfdlks', '2002-08-18 12:14:19', '02/08/18/1914247', '1', NULL, '1', NULLsql=INSERT INTO stories (section,dept,relatedtext,title,displaystatus,commentstatus,introtext,time,sid,tid,bodytext,writestatus,uid) VALUES( 'articles', NULL, '<LI><A HREF="/search.pl?topic=1">More on News</A></LI>\n<LI><A HREF="/search.pl?op=stories&author=7">Also by i18n-editor</A></LI>', 'rrrrsarwrew', '0', '0', 'lsjflksjfdlks', '2002-08-18 12:14:19', '02/08/18/1914247', '1', NULL, '1', NULL) DBD::mysql::db do failed: Column 'uid' cannot be null at /usr/local/lib/perl5/site_perl/5.6.1/i686-linux/Slash/DB/Utility.pm line 353. [Sun Aug 18 19:14:47 2002] [error] /admin.pl:Slash::DB::Utility:/usr/local/lib/perl5/site_perl/5.6.1/i686-linux/Slash/DB/Utility.pm:338:INSERT INTO stories (section,dept,relatedtext,title,displaystatus,commentstatus,introtext,time,sid,tid,bodytext,writestatus,uid) VALUES( 'articles', NULL, '<LI><A HREF="/search.pl?topic=1">More on News</A></LI>\n<LI><A HREF="/search.pl?op=stories&author=7">Also by i18n-editor</A></LI>', 'rrrrsarwrew', '0', '0', 'lsjflksjfdlks', '2002-08-18 12:14:19', '02/08/18/1914247', '1', NULL, '1', NULL) ------------------------------------------------------- and then a bunch more cascading errors. It looks to me like the sql that is created: "SELECT * FROM users,users_comments,users_index,users_info,users_prefs WHERE users.uid= AND users_comments.uid= AND users_index.uid= AND users_info.uid= AND users_prefs.uid= " for some reason does not have a value for $user. As you can see form the dump of the form hash, there is no uid key there, so when the sql is generated in "my $sid = $slashdb->createStory($form);" it is going to be bad. There is a uid key in the $user hash though - should it come from there somehow? I looked at the cvs vesrion of this file at http://cvs.slashcode.com/index.cgi/~checkout~/slash/public_html/Attic/admin.pl?rev=1.4.2.88&content-type=text/plain&hideattic=0 has this routine looking like this: ############################################################## sub saveStory { my $slashdb = getCurrentDB(); my $user = getCurrentUser(); my $form = getCurrentForm(); $form->{sid} = getsid(); $form->{displaystatus} ||= 1 if $user->{section}; $form->{section} = $user->{section} if $user->{section}; $form->{dept} =~ s/ /-/g; $form->{relatedtext} = getRelated( "$form->{title} $form->{bodytext} $form->{introtext}" ) . otherLinks($user->{nickname}, $form->{tid}); $form->{writestatus} = 1 unless $form->{writestatus} == 10; $slashdb->saveStory(); titlebar('100%', getTitle('saveStory-title')); listStories(); } ############################################################## which is a little bit different in how the sid is created and then saved. Oddly enough, I am able to update existing stories, even thought the corresponding code for updateStory also does not seem to set uid anywhere. ################################################################## sub updateStory { errorLog("--------------- entering updateStory -----------"); my $slashdb = getCurrentDB(); errorLog("--------------- finished getCurrentDB -----------"); my $form = getCurrentForm(); errorLog("--------------- finished getCurrentForm -----------"); errorLog(Dumper($form)); # Some users can only post to a fixed section if (my $section = getCurrentUser('section')) { $form->{section} = $section; $form->{displaystatus} = 1; } $form->{writestatus} = 1; $form->{dept} =~ s/ /-/g; $form->{aid} = $slashdb->getStory($form->{sid}, 'aid') unless $form->{aid}; $form->{relatedtext} = getRelated("$form->{title} $form->{bodytext} $form->{introtext}") . otherLinks($slashdb->getAuthor($form->{uid}, 'nickname'), $form->{tid}, $form->{uid}); $slashdb->updateStory(); titlebar('100%', getTitle('updateStory-title')); listStories(); } ################################################################## Any thoughts? Should I update my saveStory function with the latest from CVS? On a separate but related tack. that raises other questions about "latest from CVS" - I have held back in general because of the mods I made to whatever version I had. Maybe I need to think about updating and re-merging anyway. How can I figure out what build of bender I have so I can diff my changes and then merge them back into a more current release? Thanks for reading this far...... |
From: Eric D. <eri...@ja...> - 2002-08-17 23:45:17
|
Oops, also install: Time::HiRes and DBIx::Password I think there are some other modules not being installed by Bundle::Slash. Check the sql/mysql/upgrades (or is it updates) for what new stuff to install. |
From: i18n <i1...@ya...> - 2002-08-18 02:11:18
|
DBIx Password was still in the right place from before the first "upgrade", safe and sound. That was one I was concerned about, since without, I would not be able to access the DB at all. Time::HiRes I was not specifically aware of, but it to seems to be safe and sound in an @INC directory Barry At 04:45 PM 8/17/2002 -0700, you wrote: >Oops, also install: > >Time::HiRes >and >DBIx::Password >I think there are some other modules not being installed by Bundle::Slash. Check the sql/mysql/upgrades (or is it updates) for what new stuff to install. > |
From: Eric D. <eri...@ja...> - 2002-08-18 06:46:53
|
Well, thats the only thing I can think of. DBIx::Password not finding the database.........cause that is what the errors you are getting sound like. If it is only the form, did you try to upgrade the template for that form? The slash guys are known to update/change template things WITHOUT warning.......... i18n wrote: >DBIx Password was still in the right place from before the first "upgrade", safe and sound. That was one I was concerned about, since without, I would not be able to access the DB at all. > >Time::HiRes I was not specifically aware of, but it to seems to be safe and sound in an @INC directory > >Barry > >At 04:45 PM 8/17/2002 -0700, you wrote: > > >>Oops, also install: >> >>Time::HiRes >>and >>DBIx::Password >>I think there are some other modules not being installed by Bundle::Slash. Check the sql/mysql/upgrades (or is it updates) for what new stuff to install. >> >> >> > > > -- ----- Bureaucrats cut red tape, lengthwise Eric Dannewitz - Adventurer, saxophonist, good-timer (crook? quite possibly), clarinetist, manic self-publicist, part-time flautist(flutist?), macintosher, and often thought to be completely out to lunch. http://www.jazz-sax.com |