1

주제: [TC 1.7.4 이상 전버전] Open ID 관련 대형 버그입니다!!

제 서버에서 우연히 찾은 버그가 하나 있습니다.

TC 1.7.4나 현재 테스트중인 1.8 r6562 나 동일하게 php.ini에서

zend.ze1_compatibility_mode 값이 on이면 오픈 ID 모듈에서 fatal 에러가 발생하여 로그인 프로세스에서 오픈ID 프로바이더에 넘겨주기 이전에 얼어버립니다.

zend.ze1_compatibility_mode 값을 off로 해줘야 오픈 ID가 정상작동합니다.


알파 3 내지 베타 1 릴리즈 이전에 시급히 손보셔야 할 것 같습니다.


이따금씩 우리 포럼에 보고가 들어오는 오픈ID로 로그인하려는데 그냥 화면이 하얗고 아무것도 되지않는다는 분들도 이 오류때문일겁니다.
(저도 이 오류가 생긴게 php.ini 기본 설정이 이거라서 내비뒀던거거든요... wink)

php 설정을 디롤트 값으로 내버려두는 호스팅이거나 zend 옵티마이저 하위호환성 감안한다고 이렇게 설정해둔 곳이면 동일할겁니다.

php.ini 설정을 바꾸라고 하기도 그런 문제이니 우리가 개선해야겠네요....



정확한 에러 메세지는 r6562에서는

Fatal error: Cannot clone object of class DOMDocument due to 'zend.ze1_compatibility_mode' in /library/contrib/phpopenid/Auth/Yadis/XML.php on line 231

1.7.4에서는

Fatal error: Cannot clone object of class DOMDocument due to 'zend.ze1_compatibility_mode' in /lib/contrib/phpopenid/Auth/Yadis/XML.php on line 231

입니다용..

건더기 (2008-08-26 00:06:25)에 의해 마지막으로 수정

잠수...

2

답글: [TC 1.7.4 이상 전버전] Open ID 관련 대형 버그입니다!!

헐... 저걸 어쩌나;

저 라이브러리는 OpenID쪽에서 제공해주는걸 쓰는건데...

"Everything looks different on the other side."

-Ian Malcomm, from Michael Crichton's 'The Jurassic Park'

3

답글: [TC 1.7.4 이상 전버전] Open ID 관련 대형 버그입니다!!

대충 구글링해보니 옵션에 따라 OOP 동작이 달라져서 그런 듯싶습니다. (PHP Bugs: 38663)
[s]일단 사용하시는 php 버전이 정확히 몇인지 알려주시면 좋겠습니다.[/s]구글링해보니 5.0.x ~ 5.2.x까지 동일하게 발생하는 문제인 것 같군요. 5.3에서 수정되는 듯.

그나저나 어떻게 해결해야 될지는 난감하군요...
정말 설정에 따라 '다른' 언어가 된다더니만 OTL
매뉴얼 찾아보니 PHP4와의 호환성을 위한 플래그라고 하네요.

게다가 이런 절망적인 질의응답도 있군요.
또한 이것은 php 5.3에서는 E_DEPRECATED 경고를 발생시키는 것으로 대체된다고 하네요..;; 아놔, 정말 php 5.3 전용으로 만들어버릴까-_-

daybreaker (2008-08-26 19:33:26)에 의해 마지막으로 수정

문제의 답은 우리 안에 있다.
내면에 귀를 기울여 보자.

4

답글: [TC 1.7.4 이상 전버전] Open ID 관련 대형 버그입니다!!

건더기 작성:

이따금씩 우리 포럼에 보고가 들어오는 오픈ID로 로그인하려는데 그냥 화면이 하얗고 아무것도 되지않는다는 분들도 이 오류때문일겁니다.
(저도 이 오류가 생긴게 php.ini 기본 설정이 이거라서 내비뒀던거거든요... wink)

php 설정을 디롤트 값으로 내버려두는 호스팅이거나 zend 옵티마이저 하위호환성 감안한다고 이렇게 설정해둔 곳이면 동일할겁니다.

php.ini 설정을 바꾸라고 하기도 그런 문제이니 우리가 개선해야겠네요....

그나마 다행인 건, php 매뉴얼에 따르면 기본값이 off 또는 0이라는 점입니다.;

문제의 답은 우리 안에 있다.
내면에 귀를 기울여 보자.

5

답글: [TC 1.7.4 이상 전버전] Open ID 관련 대형 버그입니다!!

건더기님, 혹시 config.php 등에 ini_set('zend.ze1_compatibility_mode', 0)을 넣었을 때 해결되는지 확인해주실 수 있나요?

매뉴얼 보니 Changeable에 PHP_INI_ALL라고 되어 있는데 이게 혹시 php 스크립트 내에서 임의로 override 가능한 것인지 알고 싶어섭니다. (왜 매뉴얼엔 설명이 안 보이는 건지..-_-)

daybreaker (2008-08-26 20:14:10)에 의해 마지막으로 수정

문제의 답은 우리 안에 있다.
내면에 귀를 기울여 보자.

6

답글: [TC 1.7.4 이상 전버전] Open ID 관련 대형 버그입니다!!

daybreaker 작성:

건더기님, 혹시 config.php 등에 ini_set('zend.ze1_compatibility_mode', 0)을 넣었을 때 해결되는지 확인해주실 수 있나요?

매뉴얼 보니 Changeable에 PHP_INI_ALL라고 되어 있는데 이게 혹시 php 스크립트 내에서 임의로 override 가능한 것인지 알고 싶어섭니다. (왜 매뉴얼엔 설명이 안 보이는 건지..-_-)

해결됩니다. wink
php.ini 설정을 on으로 바꿔두고, config.php에 위의 ini_set을 넣지 않으면 똑같이 에러가 뜨고, ini_set을 넣으면 해결됩니다.

날뷁님이 역시 킹왕짱~  d^^b

잠수...

7

답글: [TC 1.7.4 이상 전버전] Open ID 관련 대형 버그입니다!!

#1078 티켓으로 등록하였습니다.

문제의 답은 우리 안에 있다.
내면에 귀를 기울여 보자.