-
Notifications
You must be signed in to change notification settings - Fork 9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
4.23.3掉出 #2536
Comments
路由器上直接升级v2ray-core,我也出现你上述问题,测试V4.23.1升级v4.23.2,v4.23.2升级v4.23.3。重新编译路由器固件问题解决(已测试含v4.23.2版本的固件,v4.23.3版本的固件)。 |
我也有同样的问题,这个试了下不行,4.23.4也不行,4.23.1倒是正常的 |
先谢谢您的回复,也谢谢其他朋友们能帮助确认也遇到类似问题、以及帮忙出主意解决!(不过因为没有现成的编译环境和固件源码等原因,我没能真正去重新编译路由器固件。但还是非常感谢建议) 几小时前试了一下您回复中提供的这个版本,感觉比4.23.3的那个发布版稍好,在没用电脑或手机的几小时里(但手机可能会有后台进程会检查邮件等等),这个版本的进程一直都在;但打开电脑用了一会儿后,还是发生了掉出。例如前一秒还正常显示着youtube的某个页面,点进一个视频链接突然v2ray进程就不见了…… 正好看到今天还发布了4.23.4,刚刚又换成.4用了一会儿,目前看来好像还不错,我会继续观察一下。无论4.23.4能否稳定工作,我都会来这帖子后面汇报一下情况。如果4.23.4非常稳定,这可能也有助于知道和4.23.3的版本相比,哪些差异可能导致问题不再出现。 |
路由器运行4.23.4到现在超过18小时,其间发生了两次掉出,都是没有人在操作手机等设备上网的情况下发生的。第一次掉出后打开了日志记录,文件如附件(但似乎没什么特别发现)。 |
那么内核有日志吗 |
如果内核日志是在 /var/log 目录里的话,这个路由器好像是没有内核日志的,那个目录几乎是空的。只有内核消息 /var/log/messages 但估计没什么用,如附件。 P.S. 刚才又发现掉出了两次,v2ray的日志如下(日志里时间好像是UTC的,最近两次应是 v2err.log 里 12:55:49 前、以及13:47:40前的两次)。目前暂换回 4.23.1了。 |
我的armv7路由器也出现此自动断开问题,请问该怎么解决呢 |
相同的情况,自行在树莓派3B中编译的版本也是一样。下载文件稍大便立即出现Segmentation fault并退出,比如播放视频,下载文件。没有流量或单个文件较小时不会出错。 日志调到debug级别并输出到stdout,出现Segmentation fault之前没有任何错误日志。 |
自行在树莓派3B编译的v4.23.1也出现同样的问题,尝试过go version 1.14.3和最新的1.14.4,都是一样的情况。另一个issue里有人使用go 1.14.3编译的最新版本却没有问题。 直接在v2ray github release下载的v4.23.1版本没有问题,正常使用 |
使用go version 1.13.12编译最新的v2ray v4.23.4不再出现错误,猜测官方的编译环境升级了go版本到1.14.x导致的兼容问题 |
谢谢 gitgayhub 注意到编译环境升级可能的影响! 目前很稳定的 ARM 的 4.23.1 版应该是用 go 1.13 编译的(v2ray --version有显示),如果真是go 1.14编译器的问题,可否请 klsr 或其他方便的朋友发个用1.13编译的、给 ARMv7 用的 v2ray 4.23.4,让我们跑跑看是否掉出的问题就没了…… |
我上面发的就是go 1.13.12编译的armv7版v2ray 4.23.4,https://c-t.work/s/e515c625637145 用go1.14.4再加CGO_ENABLED=1编译的armv7版在树莓派里可以正常运行,但是在openwrt里会提示command not found,不能运行,openwrt官方的解释是
|
我也从release下载了不同版本的查看了下,确实v4.23.1和之前的都是go 1.13编译的,从v4.23.2开始是go 1.14.1编译,可能问题就出在这里 |
Windows版release4.23.4(配合v2rayN一起使用),今天带着服务器(linux)一起升级了。 |
我试了一下这个,运行报“Illegal instruction”错误,应该不是给我那个CPU用的binary,没试成。 我的CPU Info processor : 1 Features : swp half thumb fastmult edsp Hardware : Northstar Prototype 虽然也是ARMv7但好像还是存在不同的类别。 |
应该是这个问题造成的,你的CPU不支持vfp,编译时加上GOARM=5这个变量应该能运行了,这是我新编译的:https://c-t.work/s/13c2fad1472c41 这是我路由器的:Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpd32 |
收到!可以运行,稍后观察效果。谢谢! |
目前这个版本已经运行了将近12个小时,没发生过掉出,感觉很稳定! 看来很可能是go 1.14编译环境的影响,建议项目团队再看看是否是这原因。 再次感谢 gitgayhub 注意到编译器问题、并发了用老版本编译出的binary ! 祝各位顺利! |
我编译了一个针对梅林、华硕AC88U的带符号的版本,没开cgo,关了优化,打算用gdb抓一下崩的现场。 不过先问一下,是应该用gdb跟踪v2ray的父进程还是子进程才能抓到崩溃呢?gdb只能二选一。 gdb默认只调试父进程,有信息打印。
跑了几天,没遇到崩溃。重新编译了4.24.2带符号的优化版,再跑跑看。 |
在我的armv7路由器(CPU是不支持VFP或系统内核未开放VFP支持)上运行gitgayhub帮助用go 1.13编译的4.23.4,至今已4天未出现掉出,看来前面反馈的掉出问题较大可能和go 1.14编译器有关。 还望项目组开发人员能在以后的编译发布时帮忙关注一下这情况。 此问题似乎可以考虑关闭了(不麻烦的话请顺便更新一下官方发布的ARMv7压缩包,以方便别的朋友使用)。 |
issue still exists on newest release build |
使用go1.13.12编译的arm版4.24.2 |
是的,新的官方发布版本仍然存在掉出问题。
非常感谢!! 正发愁没有呢!好心人一生平安! |
我的问题跟 @gitgayhub 描述的一致。下载大文件或者看视频就会随机segment fault,之前也没有任何别的输出 |
已经测试过v4.24.2在x64上CGO_ENABLED=1交叉编译arm版成功,而且暂时没发现Segmentation fault(准确来说这就是掉出的错误原因)的问题。 为了这个玩意,专门去编译go 1.14(大部分发行版还是1.11或1.13),然后弄炸了3台服务器(树莓派2B还编译到死机),最终租一台linode大CPU4核才完事(囧 |
我用v2fly最新的代码,GOOS="linux", GOARCH="arm" CGO_ENABLED=0, go1.14, 编译在安卓上运行也会出现segmentation fault,前几个版本同样的参数编译,并没有这种情况 |
最新版改了什么吗,我4.23.0 4.23.1版本的时候都是直接这样编译的 |
加了一个指定为 arm=5 的文件 |
|
你需要说明自己的ARM环境,然后说明自己使用的是RAM中那个文件 |
4.25.0 pre-release 中,linux-arm包内的v2ray(及文件名带arm5的,实际上两者应该是相同的),仍会掉出,用1.13环境自己编译的是稳定的。 |
linksys wrt1900acs armv7的openwrt路由器和树莓派3b,4.25.0 release中arm版中的所有版本都试过了,youtube一加载视频必定立刻segmentation fault。自己使用go 1.13编译的所有版本都没问题,而如果用go1.14编译,即使4.23.x和之前的老版本,也会出现segmentation fault arm64没有这个问题
|
@rendaa @gitgayhub 我几天前在另一个 issue 中说过,问题极有可能出在陈旧的依赖项目版本上。 因为目前已知的情况是,1.14 开启 CGO 编译就不会掉出。这个过程其实是把部分 GO 代码用 C 替换,所以是那些被替换掉的 GO 代码有问题。而 v2ray 的编译长期不开 CGO,显然这种操作在 core 中是没有的。我也简单搜了一下,core 的代码中的确没有直接用 CGO,没有直接写任何 C 代码。 那么,假设 1.14 本身没有问题,就只能是依赖的锅了。因为依赖往往喜欢这么做,尤其是 Golang 官方的一些库。不过依赖在 1.14 下的 BUG 估计早就被修复了,只是 core 中一直没有升级依赖版本而已。 所以,不妨先把所有依赖升至最新版本,再用 1.14 不开 CGO 编译试试。 可以直接下载 rprx/v2ray-vless 中的 go.mod 和 go.sum 并覆盖替换掉原来的。 |
首先感谢指点! 我是个小白用户,虽然本意是只要能用 go 1.13 编译出自己能用的binary就满足,但猜测项目组人员没有ARMv7/no-vfp的设备能方便测试,所以用 go 1.14 编译的arm用的程序一直有问题。那么也尽力尝试一下把您的思路落实一下,如果可行,再请项目组人员参考来提供以后的arm发布版。 因为是小白,所以不知道以下做法是否正确,还请帮看看: 1、卸载了go 1.13.12; 将编译后的 v2ctl、v2ray 传到目标环境中运行,进程启动后没有立即掉出,又试了试youtube视频(之前多次是在看 youtube 视频时掉出的)也没有发生掉出。目前已经运行了约半小时,都正常,猜测应该是能稳定运行的了。 所以确实可能是依赖库需要更新,只是不知道光一个 go get -u 是不是不够,还请帮看看。也请 @kslr 及其他项目组研发人员考虑一下看能不能更新一下依赖库以及go.mod和go.sum、用于以后官方发布的版本。 谢谢各位! 以下是我这边编译的版本,如果有其他arm设备的用户也帮忙跑跑看就多谢了! |
感谢你的测试!这么看来的确是依赖的问题,和我之前的推测一致。 从根源上解决问题很重要,两个月后 Go 1.15 推出时,1.13 将停止更新,并不是长久之计。 v2fly/v2ray-core 早些时候已经开始逐个升级依赖了,看起来以后会自动升级依赖。 手动 go get 不是必要的,因为 go.mod 和 go.sum 的作用就是锁定所有依赖的版本,如果编译时本机没有所需的版本将会自动下载(所以只改动这两个文件就够了,或者说只改 go.mod 就够了) |
@rendaa
|
感谢反馈! |
最新的4.25.0 提到这个..说是解了...可以试试看...
|
就是因为 4.25.0 没有解决,所以这个 issue 才还开着,不过现在解决了。 |
谢谢,使用你项目里的go.mod和go.sum,go1.14.4编译最新的master分支,cgo没开,编译出来的arm版程序没有问题了。 看到v2fly的master分支正在更新依赖,不过还没有完全弄好,实际编译测试也还是一样的问题 |
这个解决的是另一个问题,某些老的arm处理器不支持vfp导致不能使用 |
你能排查出是那个依赖吗,因为我没有重现的硬件 |
应该是go.mod中的 |
可能是这个issue? |
好的,明天我来检查这个问题,因为有些变化需要评估。你也可以发个PR到Fly |
大佬你下次更新改了就行了,我就不提PR了。 我又做了下测试,使用release中armv7版,客户端配置中手动指定
使用arm设备并且没有手动指定加密方式的话,默认使用chacha20-poly1305,但是因为这个issue,导致出现错误。arm64设备测试没有此问题,此bug已在今年一月修复 |
我用v2fly最新的代码编译的linux arm版,在64位安卓手机上运行现在稳定了,不会用一会就Segmentation fault |
谢谢,测试在armv7的openwrt上,加密方式为auto或手动chacha20-poly1305,都可以稳定运行,不会掉出了 |
你正在使用哪个版本的 V2Ray?(如果服务器和客户端使用了不同版本,请注明)
服务端:系统为CentOS 7.7,v2ray版本4.23.3
客户端:某ARMv7路由器,内核是Linux 2.6.36,v2ray版本4.23.3
你的使用场景是什么?
在多个设备上访问被墙的站点,例如google、youtube、telegram等。
你看到的不正常的现象是什么?(请描述具体现象,比如访问超时,TLS 证书错误等)
升级到4.23.3版后,在服务端和客户端(那个路由器上),都出现过次数不等的v2ray进程掉出的情况。ps -ef 输出里找不到 v2ray。
服务端出现较少(v2ray错误日志中能看到4.23.3只有三次启动记录,其中也包括了一次系统维护重启,并非掉出)。
客户端(路由器)上相对频繁,有时是运行后数秒就掉出,有时是正常运行10多分钟后出现,也有几次运行几小时后才出现的。
你期待看到的正确表现是怎样的?
……
请附上你的配置(提交 Issue 前请隐藏服务器端IP地址)。
服务器端配置:
客户端配置:
/var/log/v2ray/error.log
文件中。服务器端错误日志:
客户端错误日志:
(最初客户端没有启用日志,后来启用日志后,再次很快就调出,所以这次之后将客户端回退到4.23.1以求稳定。以下日志内容可以看到4.23.3版本启动后没多久就换成4.23.1了,而4.23.3并非是kill掉的,是自己就飞了,然后就马上换了4.23.1)
/var/log/v2ray/access.log
文件中。服务端这个日志有72M多,如果确有必要再想办法弄吧。。。
============ nginx.conf ============
user root;
worker_processes 3;
events {
worker_connections 4096;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
include conf.d/*.conf;
}
============ conf.d/v2ray.conf ============
server {
listen 443 ssl http2;
ssl_certificate /data/v2ray.crt;
ssl_certificate_key /data/v2ray.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+ECDSA+AES128:EECDH+aRSA+AES128:RSA+AES128:EECDH+ECDSA+AES256:EECDH+aRSA+AES256:RSA+AES256:EECDH+ECDSA+3DES:EECDH+aRSA+3DES:RSA+3DES:!MD5;
server_name renda.cf;
index index.html index.htm;
root /home/wwwroot/3DCEList;
error_page 400 = /400.html;
location /xxxxxxxxxxxx/
{
proxy_redirect off;
proxy_pass http://127.0.0.1:xxxxxx;
proxy_http_version 1.1;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
}
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/wwwroot/3DCEList$fastcgi_script_name;
include fastcgi_params;
}
}
server {
listen 80;
server_name xxxxxxxxxx;
return 301 https://xxxxxxxxxxx$request_uri;
}
nginx的access.log和error.log也不小,暂时不贴了。
如果 V2Ray 无法启动,请附上
--test
输出。v2ray能够启动,只是可能很快掉出。
如果 V2Ray 服务运行不正常,请附上 journal 日志。
服务端:
-- Logs begin at 二 2020-06-02 22:27:35 CST, end at 三 2020-06-03 01:42:30 CST. --
6月 02 22:27:21 VDS systemd[1]: Started V2Ray - A unified platform for anti-censorship.
6月 02 22:27:45 VDS v2ray[817]: V2Ray 4.23.3 (V2Fly, a community-driven edition of V2Ray.) Custom (go1.14.1 linux/amd64)
6月 02 22:27:45 VDS v2ray[817]: A unified platform for anti-censorship.
6月 02 22:27:52 VDS v2ray[817]: 2020/06/02 22:27:52 [Info] v2ray.com/core/common/platform/ctlcmd:
6月 02 22:27:52 VDS v2ray[817]: v2ctl> Read config: /etc/v2ray/config.json
客户端因为是个路由器,没有提供 journal 命令。
请预览一下你填的内容再提交。
The text was updated successfully, but these errors were encountered: