[心得] Maple3-itoc 目前架設待解決問題 (Debian)

看板Maple (BBS架站)作者時間6年前 (2017/06/20 13:26), 6年前編輯推噓1(1028)
留言29則, 3人參與, 最新討論串1/2 (看更多)
1. 還沒成功在 64bit 下編譯 之後會嘗試:

08/14 21:37,
可以嘗試編成 32 位元的可執行檔
08/14 21:37

08/14 21:38,
CFLAGS 加上 -m32 LDFLAGS 加上 -melf_i386
08/14 21:38

08/16 15:37,
請問是在哪裡加上參數?
08/16 15:37

10/16 02:02,
分別加在每個makefile裡面的CFLAGS跟LDFLAGS
10/16 02:02
※ 引述《lantw44 (1101-2019-3028-4786)》之銘言: : 後來發現,在 x86_64 的機器上編譯成 32 位元可執行檔,大致上功能正常,但有少部分 : 例如文章已讀、未讀會發生很奇怪的狀況 : 在函式庫的部分的 CFLAGS 加上 -fPIC 是可以成功編譯成 64 位元可執行檔的,但無法 : 正常執行 (bbsd 收到 SIGFPE 或 SIGSEGV 之類的 signal 而終止) 2. 另外會遇到的問題如上: 在 32bit 環境下的 linux 可以成功編譯, 「大致」功能正常 但同樣會遇到閱讀紀錄會一直reset的問題(新文章回覆顯示未讀) 若在站內發表完新文章或系統發了新文章後, 部分看板人氣會一直呈現 評:╳ 人氣:-15874 這樣子的情況 目前對於這個問題還在亂摸索中...沒什麼頭緒ˊˋ 目前利用工作站 bbs 帳號裡 ipcs 查詢到的資訊: bbs@debian:$ ipcs ------ Message Queues -------- key msqid owner perms used-bytes messages ------ Shared Memory Segments -------- key shmid owner perms bytes nattch status 0x000007ce 0 bbs 600 508456 2 0x00000bb5 32769 bbs 600 958480 2 0x00000bb7 98306 bbs 600 111328 2 ------ Semaphore Arrays -------- key semid owner perms nsems 只是在想要調整的是Makefile裡的編譯參數嗎? 或是 include/config.h 裡的相關定義 甚至要把裡面其他的程式碼抓出來改? 還是可透過ipcs/ipcrm shm調校share memory來改善? 目前能想到的就只有這些...orz 不知有沒有好心指點的前輩路過 或是其他現在也仍適合討論請益maple-itoc相關的地方QQ (目前找到留下最多資料的就: telnet://cpu.tfcis.org 了 其他以m3-itoc為基礎架的站也有一些轉信過去的資料) -- 你知道PTT有小天使嗎? 能幫助你唷! 小主人我來了^Q^ ●β HELP 想呼叫屬於你的小天使嗎? / ` 〈○〉 ▃▃▃ 只要按hh,就可以了唷!! Δ >_<~ // ▅▅▅ 快按下"hh"呼叫你的小天使吧!\(≧▽ν≦)ωgarnier -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.116.101.29 ※ 文章網址: https://www.ptt.cc/bbs/Maple/M.1497936402.A.60C.html

06/20 21:11, , 1F
剛看了一下你寫的安裝步驟,有設定好讓
06/20 21:11, 1F

06/20 21:11, , 2F
camera 和 account 開機自動執行嗎?
06/20 21:11, 2F

06/20 21:16, , 3F
有新增 /etc/rc.local 寫進去, 並用 chmod +x 讓他可
06/20 21:16, 3F

06/20 21:16, , 4F
執行這樣orz
06/20 21:16, 4F

06/20 21:18, , 5F
不過上一篇沒記到... (有放進github自己改的記錄裡
06/20 21:18, 5F
然後目前情況結果是剛開機時自己從虛擬機外 telnet 回去時, 會先出現一段時間的黑畫面, 過了好一陣子才出現了沒有進站圖案的空白登入畫面 http://i.imgur.com/khMiEMG.png
有嘗試過 xinetd 或 standalone 差不多都遇到類似情形 以下是去 /var/log/daemon.log 翻到的資料: (後面兩行可能是12點執行備份時才會出現的@@) > -------- Jun 21 00:28:53 debian rc.local[310]: [account]#011CACHE#011reload bcache Jun 21 00:28:53 debian rc.local[310]: sh: 1: /usr/bin/gzip: not found Jun 21 00:28:53 debian rc.local[310]: grep: run/bmta.log: No such file or directory > -------- (之前會以為設/etc/rc.local有用是因為 架pttbbs時也是用此法讓他自己跑起來的orz) 最後登進去站長選單按了系統重整 或是回去工作站重新執行 camera 和 account 或是等crontab自己重新跑那兩個程式才有效果 一直到有以下情形前系統運作大致都算正常的 但到之後在系統或使用者於「看板」內發表新文章後 或是板主小d掉某篇文章跑到 deleted 板後 使用者就會開始有未讀記錄, 然後再麼read多次使它已讀, 進出看板後, 記錄(.BRH)還是會重設, 甚至直接斷線

06/20 21:31, , 6F
於是整個 bbs 關掉 (killall bbsd / ipcrm ...)
06/20 21:31, 6F

06/20 21:31, , 7F
再重開還是有這個狀況嗎?
06/20 21:31, 7F

06/20 21:52, , 8F
斷線感覺是 bbs 程式當掉了…… dmesg 有沒有相關訊息?
06/20 21:52, 8F

06/20 21:53, , 9F
例如 segfault 或 general protection 之類的
06/20 21:53, 9F
目前只翻到這些 O.O [ 3072.842793] mmap: bbsd (452): VmData 1804693504 exceed data ulimit 16777216. Update limits or use boot option ignore_rlimit_data. [ 814.920385] mmap: bbsd (431): VmData 1804935168 exceed data ulimit 16777216. Update limits or use boot option ignore_rlimit_data. [ 325.972325] mmap: bbsd (377): VmData 1805119488 exceed data ulimit 16777216. Update limits or use boot option ignore_rlimit_data.

06/20 23:25, , 10F
(有先試了ipcs/ipcrm) 先筆記一下@@ 周末有空好好測試
06/20 23:25, 10F
先補上開機自動執行時的log.. ipcs後顯示的訊息 ※ 編輯: holishing (140.116.101.29), 06/24/2017 00:45:30 本來覺得問題在 ~/usr/[字母開頭]/[使用者]/.BRH 底下 可是發現在存閱讀記錄到該處前就已經有問題了 (可能是記憶體那邊!?) ※ 編輯: holishing (140.116.101.29), 06/24/2017 23:01:21 補上三條不同次開機的 dmesg 訊息 ※ 編輯: holishing (140.116.101.29), 06/25/2017 13:12:26

06/28 21:06, , 11F
我覺得可以考慮用 gdb 看看能不能拿到 backtrace 了
06/28 21:06, 11F

06/28 21:07, , 12F
在這之前要先把 Makefile 裡的 -s 拿掉再加上 -g 重編
06/28 21:07, 12F

06/28 21:17, , 13F
剛才搜尋了一下 RLIMIT_DATA,在 maple/bbsd.c 找到這段
06/28 21:17, 13F

06/28 21:18, , 14F
/* adjust resource : 16 mega is enough */
06/28 21:18, 14F

06/28 21:18, , 15F
limit.rlim_cur = limit.rlim_max = 16 * 1024 * 1024;
06/28 21:18, 15F

06/28 21:18, , 16F
setrlimit(RLIMIT_DATA, &limit);
06/28 21:18, 16F

06/28 21:19, , 17F
有沒有考慮把這行 setrlimit 註解掉……
06/28 21:19, 17F

06/28 21:19, , 18F
把記憶體用量限制在 16 MiB 感覺似乎很少?
06/28 21:19, 18F

06/29 01:27, , 19F
先記一下, 找時間來試 ψ(._. )>
06/29 01:27, 19F

07/03 16:54, , 20F
從config.h那邊把那部分undef掉目前狀況還是差不多@@
07/03 16:54, 20F

07/03 16:54, , 21F
再研究其他原因@@
07/03 16:54, 21F

07/04 13:07, , 22F
直接註解掉那行的結果也一樣
07/04 13:07, 22F

07/09 14:59, , 23F
gdb和Makefile參數還沒試過,找機會試
07/09 14:59, 23F
※ 編輯: holishing (140.116.101.37), 07/16/2017 01:16:40 gdb 目前找到的 log: > ps. 用 "gdb attach <程式的PID> -ex cont" 去記下來的 > 參考: > https://stackoverflow.com/questions/9746018/gdb-attach-to-a-process-without-stop 這是申請 sysop 後正常登出後留下的記錄: https://gist.github.com/holishing/9fbbccfa8d297f635715e4d71e5bda42 這是開新版後進入 (B)oards 後斷線留下的記錄: https://gist.github.com/holishing/60f1285473101c27ffd585c68db689bf 這是先前測試在 0Announce 板發文並開完新板後, 下次進站看完公告後跳出後 再從 (B)oards 進去 0Announce 板(在看板列表那時未讀燈沒亮) 再從 0Announce 板準備左鍵出板結果就斷線了: https://gist.github.com/holishing/f3cf771ea99ff30b1a848d90222c8ce7 之後進站要進去(B)然後斷線: https://gist.github.com/holishing/702e76b7ebd7b2b31793c54f1f8b29c8 這一波最後一次測試 在 0Announce 砍掉重發一次公告後 下次進站讀完公告後回主選單 然後從 (B) 進去 0Announce (那時人氣顯示: -15860) 準備再出來時, 斷線: https://gist.github.com/holishing/8e6e08873eb05be184a8c4ecfd59e762 之後的log應該會另回新文放@@, 然後上面的沒放到 backtrace orz

07/16 05:14, , 24F
這次先試到這邊, 本來一開始在test發完文後, 重複進出
07/16 05:14, 24F

07/16 05:15, , 25F
該板也會造成類似斷線情形, 但完整的log沒記到 orz
07/16 05:15, 25F

07/16 05:16, , 26F
不對, 之後應該放在gist上@@rz
07/16 05:16, 26F
像是這樣: (這個有在一些點下 backtrace 指令) https://gist.github.com/holishing/7a5f1e3a3b1d4ff3b48fe147d0ef9e27

07/16 05:49, , 27F
擇期再研究 (?
07/16 05:49, 27F
先整理一下前面的log @@ https://github.com/holishing/maplebbs-itoc/tree/gdb-test/doc/debuglog ※ 編輯: holishing (140.116.101.37), 07/21/2017 03:51:52

07/22 18:16, , 28F
或是另外找 CentOS 試試...
07/22 18:16, 28F
結果在 CentOS 7 (AltArch) 完全沒這個問題.........orz 這是逼自己不能只待在 Debian 嗎.....orz 不知道是不是 gcc 版本差異的問題還是.... (希望有天能知道答案qq ※ 編輯: holishing (140.116.101.37), 07/24/2017 12:46:17

06/16 06:52, , 29F
cpu 是用 chroot 到 x86 的 toolchain 來 build
06/16 06:52, 29F
文章代碼(AID): #1PIB8IOC (Maple)
文章代碼(AID): #1PIB8IOC (Maple)