……明明不支持 ATOMIC_OPS 的,你这么改之后会让 Nginx 误认为支持 ATOMIC_OPS,怎么可能会是对的呢
在 2018年3月7日 下午5:12,大雄 <daxio...@gmail.com> 写道:
> 好的, 到时候有复现时,我整一下 code dump 。
> 另外我想起一件事, 当时在mips环境编译不过去,我看一下错误, 改了一下让他编译过去,我觉得我这个改动是对的。
>
> --- a/src/os/unix/ngx_atomic.h 2017-12-07 17:03:35.196488805 +0800
> +++ b/src/os/unix/ngx_atomic.h 2017-12-07 17:03:28.687224371 +0800
> @@ -266,7 +266,7 @@ typedef volatile ngx_atomic_uint_t ngx_
>
> #if !(NGX_HAVE_ATOMIC_OPS)
>
> -#define NGX_HAVE_ATOMIC_OPS 0
> +#define NGX_HAVE_ATOMIC_OPS 1
>
> typedef int32_t ngx_atomic_int_t;
> typedef uint32_t ngx_atomic_uint_t;
>
> 在 2018年3月7日 下午4:57,Zexuan Luo <spacew...@gmail.com>写道:
>>
>> x86 没问题,MIPS 下才会出现,难道是 memory alignment 的问题?
>> x86 和现代 arm 里面,即使访问的内存地址没有对齐,也不会有问题。但是其他硬件架构就未必了。考虑到 Nginx/OpenResty
>> 里面有不少内存分配上的 hack,说不定就是这个问题。
>> 当然没看到 core dump,这个只是猜测。
>>
>> 在 2018年3月7日 下午4:47,大雄 <daxio...@gmail.com> 写道:
>> > hello,
>> > openresty 版本是 1.13.6.1 , openresty 是在嵌入式环境运行,在x86环境 没见过, 目前在 mips 环境
>> > 出现
>> > 问题。
>> > 现在我也没有好的办法让他复现,我再继续观察,如果能有好的复现 我尽快来反馈。
>> >
>> >
>> > 在 2018年3月6日星期二 UTC+8下午2:18:09,hongli...@gmail.com写道:
>> >>
>> >> Hello!
>> >> 请问你除了用`ngx.shared` API操作`sess_key` 的shm
>> >> zone之外还有没有别的nginx第三方module操作过呢?
>> >> 另外你的OpenResty版本是多少? 如何安装的呢?
>> >> 最好能根据你的代码提供一个最小化的复现样例以便我们分析.
>> >>
>> >> 在 2018年3月6日星期二 UTC+8上午11:52:45,大雄写道:
>> >>>
>> >>> 我写入的key 和 val 都是明文,是做 网站的session key 保存,格式也是很固定的,
>> >>> 如: Session:set("b026324c6904b2a9cb4b88d6d61c81d1",
>> >>> "admin&1520307864",
>> >>> 7200) 这就是我的设置命令,每条都是一样的格式。
>> >>>
>> >>> 我的环境在嵌入式环境,没有coredump,我尝试一下看能否使用coredump。
>> >>>
>> >>>
>> >>> 在 2018年3月6日 上午11:40,tokers <zcha...@gmail.com>写道:
>> >>>>
>> >>>> Hello!
>> >>>>
>> >>>> > 日志: 2018/03/06 10:54:19 [alert] 841#0: shared memory zone
>> >>>> > "sess_key"
>> >>>> > was locked by 20038
>> >>>>
>> >>>> 这说明 20038 这个进程在锁住这块共享内存后,还没来得及释放,就因为一些问题异常退出了。
>> >>>>
>> >>>> > nginx -s reload 无法解决问题,如果把进程stop 再start 一次,就不能重现问题。
>> >>>>
>> >>>> reload 的时候,如果不修改共享内存大小,那么这块共享内存还是会被复用的,
>> >>>> 猜测可能这块共享内存是否被写入了脏数据导致比如 slab 池的一些信息被损坏了。
>> >>>>
>> >>>> 题主有对应的 coredump 文件吗,最好可以导入到 gdb,打印一下堆栈,以便分析观察。
>> >>>>
>> >>>> --
>> >>>> --
>> > --
>> --
>