BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / bbs-man-dev / #5706同步于 1 周前
BBSMan_Dev机器人发帖

miscd killuser出现问题

luckwithme.
1 周前镜像同步17 回复
转信站: BYR!news.byr.edu.cn!news.newytht.net!news.newsmth.net!NEWSMTH ./miscd killuser Segmentation fault 不知道为什么, 我这里bbs启动都没有问题,查询用户也没问题,flush也可以,但是就是killuser不行: Breakpoint 1, main (argc=2, argv=0xbfa342c4) at miscd.c:687 687 if (strcasecmp(argv[1], "killuser") == 0) { (gdb) n 688 if (resolve_ucache() != 0) (gdb) n 690 return dokilluser(); (gdb) s dokilluser () at miscd.c:165 165 newbbslog(BBSLOG_USIES, "Started kill users\n"); (gdb) n 166 apply_users(killauser, NULL); (gdb) s apply_users (func=0x804aa62 <killauser>, arg=0x0) at ucache.c:773 773 for(count=0,i=0;i<uidshm->number;i++){ (gdb) n 774 if(func){ (gdb) 775 switch((*func)(&uidshm->passwd[i],arg)){ (gdb) Program received signal SIGSEGV, Segmentation fault. 0x08059258 in apply_utmp (fptr=0x80598b9 <kickuser_count>, maxcount=0, userid=0xb6a116c4 "sabbath", arg=0xbfa34144) at utmp.c:555 555 i = utmphead->hashhead[hashkey];
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
luckwithme.机器人#1 · 1 周前
转信站: BYR!news.byr.edu.cn!news.newytht.net!news.newsmth.net!NEWSMTH 我再进一步调试是到了utmp.c 这个是怎么回事呢?共享内存访存冲突? Breakpoint 4, apply_utmp (fptr=0x80598b9 <kickuser_count>, maxcount=0, userid=0xb6af46c4 "sabbath", arg=0xbfddc4f4) at utmp.c:553 553 num = 0; (gdb) n 554 hashkey = utmp_hash(userid); (gdb) 555 i = utmphead->hashhead[hashkey]; (gdb) Program received signal SIGSEGV, Segmentation fault. 0x08059258 in apply_utmp (fptr=0x80598b9 <kickuser_count>, maxcount=0, userid=0xb6af46c4 "sabbath", arg=0xbfddc4f4) at utmp.c:555 555 i = utmphead->hashhead[hashkey]; (gdb) p hashkey $16 = 9340 (gdb) p utmphead->hashhead[hashkey] Cannot access memory at address 0xc0f8 【 在 luckwithme (Marvel) 的大作中提到: 】 : ./miscd killuser : Segmentation fault : 不知道为什么, 我这里bbs启动都没有问题,查询用户也没问题,flush也可以,但是就是killuser不行: : ...................
luckwithme.机器人#2 · 1 周前
转信站: BYR!news.byr.edu.cn!news.newytht.net!news.newsmth.net!NEWSMTH 这个站点是测试用得,用户数据不一定全,测试用到的几个用户的home和mail都有,其他都没有放进去,不过这个问题应该不大吧 utmp是登录信息,这个怎么会出现这种访问错误呢? 【 在 luckwithme (Marvel) 的大作中提到: 】 : 我再进一步调试是到了utmp.c : 这个是怎么回事呢?共享内存访存冲突? : Breakpoint 4, apply_utmp (fptr=0x80598b9 <kickuser_count>, maxcount=0, userid=0xb6af46c4 "sabbath", arg=0xbfddc4f4) : ...................
fancyrabbit.机器人#3 · 1 周前
转信站: BYR!news.byr.edu.cn!news.newytht.net!news.newsmth.net!NEWSMTH 【 在 luckwithme (Marvel) 的大作中提到: 】 : 这个站点是测试用得,用户数据不一定全,测试用到的几个用户的home和mail都有,其他都没有放进去,不过这个问题应该不大吧 : utmp是登录信息,这个怎么会出现这种访问错误呢? : 其中 : 88 #define MAXUSERS 40000 : 89 #define MAXCLUB 1024 : 90 #define MAXBOARD 1024 : 91 #define MAXACTIVE 3000 : 3000确实比9340大了,但是这是怎么回事呢 -_- 问你自己啊 ... 你是从别的正常站挪过来的? 原来什么样?
foxban.机器人#4 · 1 周前
转信站: BYR!news.byr.edu.cn!news.newytht.net!news.newsmth.net!NEWSMTH 我们站也曾出现过杀人程序中断的情况,忘了当时怎么搞定的了。。 【 在 fancyrabbit (兔兔猫★Initial F★Changing ...) 的大作中提到: 】 : -_- 问你自己啊 ... 你是从别的正常站挪过来的? : 原来什么样?
atppp.机器人#5 · 1 周前
转信站: BYR!news.byr.edu.cn!news.newytht.net!news.newsmth.net!NEWSMTH 你改过 MAXACTIVE 么,改过以后有没有全部make; make install然后完全重启动 【 在 luckwithme (Marvel) 的大作中提到: 】 : 这个站点是测试用得,用户数据不一定全,测试用到的几个用户的home和mail都有,其他都没有放进去,不过这个问题应该不大吧 : utmp是登录信息,这个怎么会出现这种访问错误呢? : 其中 : 88 #define MAXUSERS 40000 : 89 #define MAXCLUB 1024 : 90 #define MAXBOARD 1024 : 91 #define MAXACTIVE 3000 : 3000确实比9340大了,但是这是怎么回事呢
luckwithme.机器人#6 · 1 周前
转信站: BYR!news.byr.edu.cn!news.newytht.net!news.newsmth.net!NEWSMTH 没有改过 如何在gdb中attach进程后查看MAXACTIVE的值是多少?呵呵 【 在 atppp (Big Mouse) 的大作中提到: 】 : 你改过 MAXACTIVE 么,改过以后有没有全部make; make install然后完全重启动
luckwithme.机器人#7 · 1 周前
转信站: BYR!news.byr.edu.cn!news.newytht.net!news.newsmth.net!NEWSMTH 确实是从smth1.2升级过来的,不过site/xxx.h文件没有动过,一直就是上面的那个 40000/3000,而且以前一切都运行正常,只不过加了SAVELIFE的宏定义,现在准备杀用户, 去掉之后就有问题了…… 我找了一下 MAXACTIVE是3000 USHM_SIZE (MAXACTIVE + 10)是3010 UTMP_HASHSIZE (USHM_SIZE*4)是12040>9340应没问题 问题貌似出在这里: Program received signal SIGSEGV, Segmentation fault. 0x08059258 in apply_utmp (fptr=0x80598b9 <kickuser_count>, maxcount=0, userid=0xb6a7dbf8 "fhm", arg=0xbfde9504) at utmp.c:555 555 i = utmphead->hashhead[hashkey]; (gdb) p i $13 = -20 (gdb) p hashkey $14 = 7383 (gdb) p utmphead->hashhead Cannot access memory at address 0x2f08 (gdb) p utmphead $15 = (struct UTMPHEAD *) 0x0 hashhead为什么无法访问呢? 【 在 fancyrabbit (兔兔猫★Initial F★Changing ...) 的大作中提到: 】 : 标 题: Re: miscd killuser出现问题 : 发信站: 水木社区 (Thu Feb 28 23:08:39 2008), 转信 : : : 【 在 luckwithme (Marvel) 的大作中提到: 】 : : 这个站点是测试用得,用户数据不一定全,测试用到的几个用户的home和mail都有,其他都没有放进去,不过这个问题应该不大吧 : : utmp是登录信息,这个怎么会出现这种访问错误呢? : : 其中 : : 88 #define MAXUSERS 40000 : : 89 #define MAXCLUB 1024 : : 90 #define MAXBOARD 1024 : : 91 #define MAXACTIVE 3000 : : 3000确实比9340大了,但是这是怎么回事呢 : -_- 问你自己啊 ... 你是从别的正常站挪过来的? : 原来什么样? : : -- :
luckwithme.机器人#8 · 1 周前
转信站: BYR!news.byr.edu.cn!news.newytht.net!news.newsmth.net!NEWSMTH 会不会是没有resolve_utmp的关系? 直接用miscd killuser有这个问题? 【 在 luckwithme (Marvel) 的大作中提到: 】 : 确实是从smth1.2升级过来的,不过site/xxx.h文件没有动过,一直就是上面的那个 : 40000/3000,而且以前一切都运行正常,只不过加了SAVELIFE的宏定义,现在准备杀用户, : 去掉之后就有问题了…… : ...................
luckwithme.机器人#9 · 1 周前
转信站: BYR!news.byr.edu.cn!news.pigpark.net!news.newytht.net!news.newsmth.net! 我想是不是这样的,如果miscd daemon启动的话,在miscd_dodaemon中有: 568 resolve_boards(); 569 resolve_utmp(); 570 resolve_guest_table(); 所以没问题,但是如果单独命令行执行miscd killuser的话,貌似从 main->dokilluser->killauser->kick_user_utmp->apply_utmp 都没有resove_utmp(),所以这样会出错 //可能大家都是默认的daemon启动杀用户,所以都没有遇到这个问题,我猜的对吗,呵呵 【 在 luckwithme (Marvel) 的大作中提到: 】 : 会不会是没有resolve_utmp的关系? : 直接用miscd killuser有这个问题? : 我看了smth1.2的代码,其中没有出问题的那句kick_user_utmp(getuser(theuser->userid, NULL), NULL, SIGKILL); : ...................