CI 묻고 답하기

제목 Fatal error 관련하여 여쭙고자 합니다.
카테고리 CI 2, 3
글쓴이 멀바이자시가 작성시각 2021/08/31 16:06:16
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 8948   RSS

안녕하세요? 다름이 아니라 아파치 로그를 살펴보는 중 Fatal error 가 심심치 않게 발견되어 고수님들께 여쭙고자 합니다.

PHP Fatal error:  Call to a member function row() on a non-object in ~/system/libraries/Session/drivers/Session_database_driver.php on line 396, referer: ~

위와 같이 에러건이 많이 발생하며 해당 라이브러리에서 396 줄은 하단에 11번째 줄입니다.

protected function _release_lock()
	{
		if ( ! $this->_lock)
		{
			return TRUE;
		}

		if ($this->_platform === 'mysql')
		{
			if ($this->_db->query("SELECT RELEASE_LOCK('".$this->_lock."') AS ci_session_lock")->row()->ci_session_lock)
			{
				$this->_lock = FALSE;
				return TRUE;
			}

			return FALSE;
		}
		elseif ($this->_platform === 'postgre')
		{
			if ($this->_db->simple_query('SELECT pg_advisory_unlock('.$this->_lock.')'))
			{
				$this->_lock = FALSE;
				return TRUE;
			}

			return FALSE;
		}

		return parent::_release_lock();
	}

RELEASE_LOCK 으로 풀린 row() 를 찾을 수 없어서 Call to a member function row() on a non-object 이게 뜨는걸까요?

혹시 이 에러로 인해 서버 CPU 점유율이 100% 가까이 갈수도 있는걸까요?

해당 에러에 대해 많은 정보가 없어 고수님들께 도움 요청 드립니다. ㅜㅜ

참고로 PHP 5.3.3 / Apache/2.2.15 (Unix) 입니다. config 세션 설정은 하단입니다.

$config['sess_driver'] = 'database';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_encrypt_cookie'] = TRUE;
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = 'ci_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;
$config['sess_use_database'] = TRUE;
$config['sess_table_name'] = 'ci_sessions';

 

 다음글 테이블 불러오기... (1)
 이전글 _error_handler, 배열, DB값 호출 에러 ... (1)

댓글

변종원(웅파) / 2021/09/01 09:50:50 / 추천 1

ci버전은요? 3점대로 보이는데 최신버전이 아니라면 3점대 최신버전으로 패치해보세요.

동접수는 얼마나 되나요? 동접이 많은 사이트에서 db 세션은 서버부하가 일어날 수 있습니다. db 락도 문제가 될 수 있구요. (데드락)

구글에서 mysql 데드락 한번 검색해보세요.

멀바이자시가 / 2021/09/01 12:26:08 / 추천 0

넵. 웅파님 답변 감사드립니다.

데드락 관련해서 한번 찾아봐야겠네요.