歡迎光臨, 訪客. 請先 登入註冊一個帳號.
三月 29, 2024, 12:06:09 上午
19595 文章 在 3865 主題 由 4580 會員
最新註冊會員: aa123aa1
LifeType 中文開發論壇  |  支援  |  安裝與設定  |  blog移機後發表新文章的錯誤訊息 « 上篇主題 下篇主題 »
頁: [1] 2
作者 主題: blog移機後發表新文章的錯誤訊息  (閱讀 39724 次)
ted
一般會員
***
文章: 103


檢視個人資料
« 於: 十月 02, 2006, 01:36:07 下午 »

前幾天將在 A 機器上的 LT 1.0.6 移到 B機器上後,發現在發表文章後會出現下面的錯誤訊息

Fatal error: Uncaught exception 'Exception' with message 'BayesianTokens::updateOccurrencesFromTokensArray: Cannot update occurrences of token 'Redingè'.' in D:\AppServ\www\blog\class\dao\bayesiantokens.class.php:194 Stack trace: #0 D:\AppServ\www\blog\class\dao\bayesiantokens.class.php(164): BayesianTokens->updateOccurrencesFromTokensArray('1', Array, 0, 1, '0', 369) #1 D:\AppServ\www\blog\class\bayesian\bayesianfiltercore.class.php(87): BayesianTokens->incNonSpamOccurrencesFromTokensArray('1', Array, '0', 369) #2 D:\AppServ\www\blog\class\bayesian\bayesianfiltercore.class.php(108): BayesianFilterCore->train('1', '???????????????...', '<p>????????????...', '', '', '', false) #3 D:\AppServ\www\blog\class\action\admin\adminaddpostaction.class.php(122): BayesianFilterCore->trainWithArticle(Object(Article)) #4 D:\AppServ\www\blog\class\controller\controller.class.php(309): AdminAddPostAction->perform() #5 D:\AppServ\www\blog\admin.php(39): Controller->process(Array, 'op') #6 {main} thrown in D:\AppServ\www\blog\class\dao\bayesiantokens.class.php on line 194



查看後發現文章是在存成功,RSS reader也收的到此篇新文章
但 blog 首頁卻不會出現,但從文章分類或搜尋都可以找的到

當再次編輯此文章,再存檔;或者先存成草稿,然後再發表 就會正常,沒有錯誤


我移機的大致作法是:先在B 機器裝上一樣版本的 LT,然後把 A機器上的 plugin,template,及 mysql的 data檔案 copy 至B 機器

雖然A,B二台的 php 及 mysql, apache版本不同,但我都把my.ini 或 php.ini及 apache 的設定盡量調成一致

新的B機器
-----------------------------------------
Windows server 2003
Apache Web Server Version 2.2.2
PHP Script Language Version 5.1.4
MySQL Database Version 5.0.22


舊的 A機器
-------------------------------------
Windows 2000 server
Apache Web Server Version 2.0.54
PHP Script Language Version 5.0.4
MySQL Database Version 4.1.12a



請問可能是那邊造成的問題,或者我copy 錯了什麼檔案?


謝謝
已記錄

OS: windows server 2003
Apache Web Server Version 2.2.2
PHP Script Language Version 5.1.4
MySQL Database Version 5.0.22
eppies
新手見習
*
文章: 12


檢視個人資料
« 回覆文章 #1 於: 十月 03, 2006, 12:33:38 上午 »

我的blog昨天開始也出現這問題
po了新文章後
就出現
Exception message: BayesianTokens::updateOccurrencesFromTokensArray: Cannot update occurrences of token 'Topic#tes'.
Error code: 0
-- Backtrace --
/var/www/vhosts/apple.pro/httpdocs/class/dao/bayesiantokens.class.php(194): throw
/var/www/vhosts/apple.pro/httpdocs/class/dao/bayesiantokens.class.php(164): bayesiantokens.updateoccurrencesfromtokensarray
/var/www/vhosts/apple.pro/httpdocs/class/bayesian/bayesianfiltercore.class.php(87): bayesiantokens.incnonspamoccurrencesfromtokensarray
/var/www/vhosts/apple.pro/httpdocs/class/bayesian/bayesianfiltercore.class.php(108): bayesianfiltercore.train
/var/www/vhosts/apple.pro/httpdocs/class/action/admin/adminaddpostaction.class.php(122): bayesianfiltercore.trainwitharticle
/var/www/vhosts/apple.pro/httpdocs/class/controller/controller.class.php(309): adminaddpostaction.perform
/var/www/vhosts/apple.pro/httpdocs/admin.php(39): admincontroller.process

但在首頁跟文章又會正常出現
昨天開始之前所有的正常回應都不見了
也無法在blog上回應
回應的話
會出現

Exception message: BayesianTokens::updateOccurrencesFromTokensArray: Cannot update occurrences of token 'asfasdf'.
Error code: 0
-- Backtrace --
/var/www/vhosts/apple.pro/httpdocs/class/dao/bayesiantokens.class.php(194): throw
/var/www/vhosts/apple.pro/httpdocs/class/dao/bayesiantokens.class.php(164): bayesiantokens.updateoccurrencesfromtokensarray
/var/www/vhosts/apple.pro/httpdocs/class/bayesian/bayesianfiltercore.class.php(87): bayesiantokens.incnonspamoccurrencesfromtokensarray
/var/www/vhosts/apple.pro/httpdocs/class/security/bayesianfilter.class.php(113): bayesianfiltercore.train
/var/www/vhosts/apple.pro/httpdocs/class/security/pipeline.class.php(172): bayesianfilter.filter
/var/www/vhosts/apple.pro/httpdocs/class/action/blogaction.class.php(70): pipeline.process
/var/www/vhosts/apple.pro/httpdocs/class/action/addcommentaction.class.php(46): addcommentaction.blogaction
/var/www/vhosts/apple.pro/httpdocs/class/controller/controller.class.php(303): addcommentaction.addcommentaction
/var/www/vhosts/apple.pro/httpdocs/index.php(42): blogcontroller.process

登入admin後
原本會出現的最新回應跟右邊文章總數、回應、瀏覽次數統計全部不見了

我的blog目前有七百多個會員
每個blog都有這問題
從今年一月開站都沒出現過這類問題
希望站上大大能給小弟一點建議
看看到底哪邊出了問題
不勝感激
已記錄
eppies
新手見習
*
文章: 12


檢視個人資料
« 回覆文章 #2 於: 十月 04, 2006, 09:30:20 上午 »

哎~
剛剛去英文官網論壇上找
似乎也找不到解決的方法  傷心
已記錄
markwu
系統管理員
超級會員
*****
文章: 3928


Mark Wu


檢視個人資料 個人網站
« 回覆文章 #3 於: 十月 04, 2006, 10:34:39 上午 »

把 ./tmp 下的 sql_error.log 貼上來,看起來是寫入資料庫時發生錯誤。

Mark
已記錄

eppies
新手見習
*
文章: 12


檢視個人資料
« 回覆文章 #4 於: 十月 04, 2006, 11:14:58 上午 »

謝謝Mark的回應

不過...sql_error.log 竟然有1.36GB  目瞪口呆

看來是貼不上來了  嚎啕大哭


再請問一下mark
那這個過度肥大的log檔
可以del嗎
我的主機是放在godaddy
也不過租10G
這log檔就1G多 
很想把它del掉...
« 最後編輯時間: 十月 04, 2006, 11:19:18 上午 由 eppies » 已記錄
ted
一般會員
***
文章: 103


檢視個人資料
« 回覆文章 #5 於: 十月 04, 2006, 11:15:59 上午 »

我的 sql_error.log 內容見附件,

有一些訊息是 Data too long for column 'text' at row 1
是文章太長的關係嗎? 我沒有去變更過MySQL 的資料庫欄位呀

因錯誤訊息很長, 我附上檔案, 以方便各位查看

煩請幫忙看看,謝謝


ted


已記錄

OS: windows server 2003
Apache Web Server Version 2.2.2
PHP Script Language Version 5.1.4
MySQL Database Version 5.0.22
panying
新手見習
*
文章: 39


檢視個人資料
« 回覆文章 #6 於: 十月 04, 2006, 01:14:19 下午 »

INSERT INTO plog_bayesian_tokens (blog_id, token, spam_occurrences, nonspam_occurrences, prob) VALUES ('2', 'URL?, '0', '1', '0.01')

这个插入数据是乱码... 目瞪口呆
已記錄

panying
新手見習
*
文章: 39


檢視個人資料
« 回覆文章 #7 於: 十月 04, 2006, 01:22:15 下午 »

基于你使用的是Mysql5的版本,建议将MySql5的Strict Mode参数移去,说不定能达到效果..
已記錄

ted
一般會員
***
文章: 103


檢視個人資料
« 回覆文章 #8 於: 十月 11, 2006, 11:50:58 上午 »

如果以 utf-8 的編碼來看 err log 的話, 倒沒有亂碼的問題

02-10-2006 02:23:55 ERROR - The following query =
INSERT INTO plog_bayesian_tokens (blog_id, token, spam_occurrences, nonspam_occurrences, prob) VALUES ('2', 'URL', '0', '1', '0.01')
generated the following error message =
Data too long for column 'token' at row 1

出現 token 的值太長,超過 plog_bayesian_tokens 裏 token 這毎欄位的長度,
但以此例來看, 'URL' 跟本沒有超過 token var(100) 的長度?

目前在新增10篇文章,但概有8成會有此問題

我只好暫時把 blog\class\dao 下的 bayesiantokens.class.php 中的 第 192行起的幾行先給 mark 起來
至少這樣不會再有此情形,且程式可以繼續下去, 才不會文章進去了,但 blog 首頁却沒出現

                if (!$result)
                {
                    throw(new Exception("BayesianTokens::updateOccurrencesFromTokensArray: Cannot update occurrences of token '$token'."));

                      die();
                }



只是不曉得這樣改會不會有其他的影響就是了
已記錄

OS: windows server 2003
Apache Web Server Version 2.2.2
PHP Script Language Version 5.1.4
MySQL Database Version 5.0.22
panying
新手見習
*
文章: 39


檢視個人資料
« 回覆文章 #9 於: 十月 29, 2006, 09:11:48 下午 »

直接看16进制代码的话,可以看见

插入的'URL'其实是 27 55 52 4C E8 27,嗯,当然在我这里显示就是'URL?

应该是mysql 认为E8在SQL里是一个非法字符吧,所以报错了?
已記錄

mouson
新手見習
*
文章: 22



檢視個人資料 個人網站
« 回覆文章 #10 於: 五月 08, 2007, 12:23:59 上午 »

不好意思! 我再次的發生類似的事情!

我的sql_error.log的內容如下
程式碼:
D:\wwwroot\BlogWebSite\class\logger\logger\logger.class.php(157): PatternLayout.format
D:\wwwroot\BlogWebSite\class\logger\logger\logger.class.php(137): Logger.log
D:\wwwroot\BlogWebSite\class\dao\model.class.php(142): Logger.error
D:\wwwroot\BlogWebSite\class\dao\bayesiantokens.class.php(306): Model.Execute
D:\wwwroot\BlogWebSite\class\dao\bayesiantokens.class.php(262): BayesianTokens.insert
D:\wwwroot\BlogWebSite\class\dao\bayesiantokens.class.php(193): BayesianTokens.updateOccurrences
D:\wwwroot\BlogWebSite\class\dao\bayesiantokens.class.php(167): BayesianTokens.updateOccurrencesFromTokensArray
D:\wwwroot\BlogWebSite\class\bayesian\bayesianfiltercore.class.php(87): BayesianTokens.incNonSpamOccurrencesFromTokensArray
D:\wwwroot\BlogWebSite\class\bayesian\bayesianfiltercore.class.php(108): BayesianFilterCore.train
D:\wwwroot\BlogWebSite\class\action\admin\adminaddpostaction.class.php(157): BayesianFilterCore.trainWithArticle
D:\wwwroot\BlogWebSite\class\controller\controller.class.php(347): AdminAddPostAction.perform
D:\wwwroot\BlogWebSite\admin.php(43): Controller.process

 08-05-2007 01:21:38 ERROR - The following query =
INSERT INTO lt_bayesian_tokens (blog_id, token, spam_occurrences, nonspam_occurrences, prob) VALUES ('2', '20?, '0', '1', '0.01')generated the following error message =
Data too long for column 'token' at row 1

只要是發表中文的文章就會發生上述的狀況
不知道是什麼原因!
照著ted 所說的方法的確可以避免
但看樣子似乎治標不治本,不知道大家如何解學上述的問題呢?
已記錄

個人部落格 http://MrMo.cc/mouson
ted
一般會員
***
文章: 103


檢視個人資料
« 回覆文章 #11 於: 五月 08, 2007, 12:38:49 下午 »

今天在另一台測試的機器上發現,
如果我沒有把下面這段給 mark 掉,當迴響中有全型的文字時 (如< 或[  ...) ,也會有一樣的錯誤



                if (!$result)
                {
                    throw(new Exception("BayesianTokens::updateOccurrencesFromTokensArray: Cannot update occurrences of token '$token'."));

                      die();
                }

已記錄

OS: windows server 2003
Apache Web Server Version 2.2.2
PHP Script Language Version 5.1.4
MySQL Database Version 5.0.22
markwu
系統管理員
超級會員
*****
文章: 3928


Mark Wu


檢視個人資料 個人網站
« 回覆文章 #12 於: 七月 02, 2007, 10:35:49 上午 »

其實不是這個原因,因為 Baysian 對中文切字的問題,是本來就有的。因為他是以 stop words 切字。

這個問題的原因是 mysql5 的 strict mode,造成在insert 切完後的結果到資料欄位時發生錯誤。

我建議先將 mysql5 的 strict mode 拿掉。

Mark
已記錄

mouson
新手見習
*
文章: 22



檢視個人資料 個人網站
« 回覆文章 #13 於: 十月 23, 2007, 11:33:15 上午 »

mark您好

跟您請教一個問題

您所說的拿掉mysql5的strict mode
是不是就像以下操作一下
把my.ini中的sql-mode裡的STRICT_TRANS_TABLES去除就可以了呢?

#sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"


還是一定要透過mysql的MySQL Server Instance Config Wizard ?

會再次的這樣問
主要是因為日前已經將bayesiantokenizer.class.php第六行的stop words回復到原本的狀態
並且如我上述的修改sql-mode
結果在發表文章的時候
依然會出現如下的錯誤訊息。
程式碼:
Fatal error:
Uncaught exception 'Exception' with message 'BayesianTokens::updateOccurrencesFromTokensArray: Cannot update occurrences of token '!!?.' in D:\wwwroot\BetaWebSite\class\dao\bayesiantokens.class.php:197 Stack trace: #0
D:\wwwroot\BetaWebSite\class\dao\bayesiantokens.class.php(167): BayesianTokens->updateOccurrencesFromTokensArray('3', Array, 0, 1, '3', 32) #1
D:\wwwroot\BetaWebSite\class\bayesian\bayesianfiltercore.class.php(87): BayesianTokens->incNonSpamOccurrencesFromTokensArray('3', Array, '3', 32) #2
D:\wwwroot\BetaWebSite\class\bayesian\bayesianfiltercore.class.php(108): BayesianFilterCore->train('3', '??????strict mo...', '<p>????????????...', '', '', '', false) #3
D:\wwwroot\BetaWebSite\class\action\admin\adminaddpostaction.class.php(158): BayesianFilterCore->trainWithArticle(Object(Article)) #4
D:\wwwroot\BetaWebSite\class\controller\controller.class.php(347): AdminAddPostAction->perform() #5
D:\wwwroot\BetaWebSite\admin.php(43): Controller->process(Array) #6
{main} thrown in D:\wwwroot\BetaWebSite\class\dao\bayesiantokens.class.php on line 197


不好意思 要再麻煩您!!
已記錄

個人部落格 http://MrMo.cc/mouson
markwu
系統管理員
超級會員
*****
文章: 3928


Mark Wu


檢視個人資料 個人網站
« 回覆文章 #14 於: 十一月 02, 2007, 02:43:16 下午 »

ㄟ,怪了,我記得這個 bug 我已經修復了,可以請問你是用那一版的 LifeType嗎?

Mark
已記錄

頁: [1] 2
LifeType 中文開發論壇  |  支援  |  安裝與設定  |  blog移機後發表新文章的錯誤訊息 « 上篇主題 下篇主題 »
    前往: