Skip to content
This repository has been archived by the owner on Jun 16, 2019. It is now read-only.

update size fail for port:10192invalid character '<' looking for beginning of value" #63

Open
blueyi opened this issue Jul 17, 2016 · 19 comments

Comments

@blueyi
Copy link

blueyi commented Jul 17, 2016

看过了@orvice 相关的几乎所有回答,貌似提到是redis-server的问题。但有两个服务器,都是ubuntu-14.04-x86_64系统(两个不同的VPS供应商),而且redis-server的版本都是2.8.4,检查redis运行正常。两个shadowsocks-go共用同一套配置,除了node_id不同之外,其他内容都一样。
两台服务器有一台会出现update size fail for port:xxxinvalid character '<' looking for beginning of value"的错误,导致无法更新ss-panel流量信息,看了下源码中这个函数,也不怎么懂golang,不清楚问题出在哪里,查看网络设备发现,其中一台的网卡名称不是eth0,是知是否有影响。希望有人能分析下原因,谢谢!

@blueyi
Copy link
Author

blueyi commented Jul 17, 2016

另外,ss-panel使用的版本是3.4.2,ss-go mu使用的是当前最新版本的master分支,redis-server的详细版本号是Redis server v=2.8.4 sha=00000000:0 malloc=jemalloc-3.4.1 bits=64 build=a44a05d76f06a5d9
谢谢

@goxox
Copy link

goxox commented Jul 17, 2016

这个问题,其实是网络太繁忙了。因为用webapi人多的时候并发很大。如果你的api的服务器配置不高,或者PHP-frm配置不合理都会导致处理不过来。还有就是ss-go的同步频率可以降低一些。解决方案还可以用分布式的方法,把每个节点的webapi请求单独开一台VPS处理,数据库用同一个。

@blueyi
Copy link
Author

blueyi commented Jul 17, 2016

@ayooay 谢谢,实际同时在线的用户并不超过10个,应该不是人多的问题。又测试了一下,发现即使我停掉其他的服务器,只用这一台,这一台的统计从来没有成功过,但另一台,却一直都正常,log中并没有不成功的时候,所以应该是有其他问题。不知道应该从哪下手查找问题,谢谢

@goxox
Copy link

goxox commented Jul 17, 2016

@blueyi 相信我就是这个问题shadowsocks-go mu基本没啥bug。你可以看看我的SS站。百度或者google直接搜索风暴SS。(虽然在线只有那几个,但是go会每分钟同步所有端口的用户数据)

@blueyi
Copy link
Author

blueyi commented Jul 17, 2016

@ayooay 谢谢,不过我想应该不会这么巧吧,刚把另一台的同步时间改成了180,依然不行,但那台可以的,一直都正常。
我尝试一下将那个不能正常处理的节点单独配置一个webapi试试。另外php-frm如何配置才算合理,这个配置我没有动过,谢谢

@goxox
Copy link

goxox commented Jul 17, 2016

@blueyi 如果你要商用运行,php肯定需要改的。webapi正不正常,可以./mu -debug看看启动速度需要多少时间。我的只需2-10秒

@blueyi
Copy link
Author

blueyi commented Jul 17, 2016

@ayooay 谢谢,没打算商用,有没有如何改PHP的相关教程?启动速度应该在2秒以内,基本就是瞬间就启动完成在监听端口了,它store size貌似也都正常

@orvice
Copy link
Owner

orvice commented Jul 17, 2016

update size fail for port:xxxinvalid character '<' looking for beginning of value"

这个原因是因为ss-panel更新流量出错了,看下php的error log吧

@blueyi
Copy link
Author

blueyi commented Jul 18, 2016

@orvice 确实发现了问题,貌似是插入流量时出错了,如下:
Message: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'rate' cannot be null (SQL: insert intouser_traffic_log(user_id,u,d,node_id,rate,traffic,log_time) values (106, 0, 39241841, 0, , 0, 1468807489))
看样子SQL语句中的值也有些问题,node_id不应该是0,因为我没有设置值为0的节点,另外就是rate的值是空的,所有rate的值全部都是1,为什么会有这种情况呢?谢谢

@blueyi
Copy link
Author

blueyi commented Jul 18, 2016

@orvice
php error中还有好多这类错误
Message: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'rate' cannot be null,貌似都是rate的问题,如果我在数据库中将rate指定为默认值为1且可以为空,是不是可以避免这种错误,但上面的node_id也一定是有问题,想知道根本问题出在哪里,谢谢。

@orvice
Copy link
Owner

orvice commented Jul 18, 2016

node_id 在node表里存在?

@blueyi
Copy link
Author

blueyi commented Jul 18, 2016

@orvice ss_node表里没有id为0的节点,根据上面的那个报错,insert语句插入的node_id应该是为0吧,这应该是有问题的吧,谢谢

@19kka
Copy link

19kka commented Dec 5, 2016

@blueyi 我觉得错误就是字段不允许为空吧?
Message: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'rate' cannot be null (SQL: insert into user_traffic_log

我去改了数据库 rate 允许为空 好像就没有错了

rate 字段是干嘛用的 我还是不是特别清楚。

@blueyi
Copy link
Author

blueyi commented Dec 5, 2016

@19kka 流量统计也正常了吗?谢谢

@19kka
Copy link

19kka commented Dec 5, 2016

@blueyi 嗯 我这里是正常的。
wechatimg1

@blueyi
Copy link
Author

blueyi commented Dec 5, 2016

@19kka 非常感谢,是说的ss_node表里面那个traffic_rate那个字段吗

@19kka
Copy link

19kka commented Dec 5, 2016

@blueyi 不客气。我改的是 user_traffic_log 表里面的 rate 字段。

alter table user_traffic_log modify rate float null;

本来 rate 的Null 是 NO,改成了YES,允许null。

| rate | float | YES | | NULL | |

@blueyi
Copy link
Author

blueyi commented Dec 5, 2016

@19kka 改过了,我重启下服务试试,谢谢

@blueyi
Copy link
Author

blueyi commented Dec 5, 2016

@19kka 测试了一下,确实不再报错,但不清楚为什么节点列表那里依然都暂无数据,你的节点列表那里的信息正常吗, 另外这样改完之后,流量记录那里的很多信息都为空了,之前是可以正常显示的,不知道为什么,谢谢

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants