1. 问题现象
系统页面刷新的时候,偶尔会报错下面的Warnning,但是不经常出现:
Warning: Unknown: Failed to write session data (redis). Please verify that the current setting of session.save_path is correct (tcp://x.x.x.x:6379?auth=yyy) in Unknown on line 0
看网络有人说是redis版本的问题、但是没有具体结论,那么本着学习的态度,自己试试看看能不能捉出这个bug.
定位问题:
查看php文件是否有设置session的地方,发现没有
继续检查php配置文件,发现配置了session存储到redis里面
[Session]
session.save_handler = redis
session.save_path = "tcp://x.x.x.x:6379?auth=yyyy"
session.use_cookies = 1
- 继续查看php Session扩展源代码,定位出错提示语在函数php_session_save_current_state中
检查session扩展文件中出错提示:
static void php_session_save_current_state(TSRMLS_D) /* {
{
{ */
{
int ret = FAILURE;
//是否session数组
IF_SESSION_VARS() {
if (PS(mod_data) || PS(mod_user_implemented)) {
char *val;
int vallen;
//变量编码
val = php_session_encode(&vallen TSRMLS_CC);
if (val) {
//保存session数据
ret = PS(mod