プロジェクト

全般

プロフィール

Task(タスク) #4159

Task(タスク) #4033: MySQLのStrict Modeを有効にした場合に生じる問題を調査

MySQLのSTRICT_TRANS_TABLESが有効な状態でテスト用fixtureのロードに失敗する

Youichi Kimura約7年前に追加. 約4年前に更新.

ステータス:
New(新規)
優先度:
Normal(通常)
担当者:
-
対象バージョン:
開始日:
2017-02-17
期日:
進捗率:

0%


説明

Overview (概要)

MySQL 5.7 の Strict Mode が有効な状態での動作確認 (#4033) を行った際に発生した。

fixture の読み込みを必要とするテストコードを実行すると下記のエラーが発生する:

$ php test/unit/model/doctrine/MemberTest.php 
PHP Fatal error:  Uncaught exception 'Doctrine_Connection_Mysql_Exception' with message 'SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value: '' for column 'value_datetime' at row 1' in /vagrant/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Connection.php:1082
Stack trace:
#0 /vagrant/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Connection/Statement.php(269): Doctrine_Connection->rethrowException(Object(PDOException), Object(Doctrine_Connection_Statement))
#1 /vagrant/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Connection.php(1042): Doctrine_Connection_Statement->execute(Array)
#2 /vagrant/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Connection.php(687): Doctrine_Connection->exec('INSERT INTO mem...', Array)
#3 /vagrant/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Connection/UnitOfWork.php(647): Doctrine_Connection->insert(Object(MemberProfileTable), in /vagrant/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Connection.php on line 1082

Causes (原因)

source:test/fixtures/common/test_data.yml@43190aa1#L344:

  second_member_profile_birthday:
    value: "" 
    value_datetime: "" 
    public_flag: 1
    Member: second_member
    Profile: profile_birthday
    children: []

上記の value_datetime に空文字列をセットしていることが原因。

source:test/fixtures/common/xss_test_data.yml@43190aa1#L244:

OAuthMemberToken:
  first_member_html_oauth_token:
    key_string: "fIrStMeMbErHtMlOaUtHtOkEn" 
    secret: "fIrStMeMbErHtMlOaUtHsEcReT" 
    type: "access" 
    is_active: 1
    Consumer: html_oauth_consumer1
    Member: first_member

また、上記の key_string についても定義されている VARCHAR のサイズを越える文字列のためエラーが発生する。

履歴

#1 kaoru nほぼ7年前に更新

  • 対象バージョンOpenPNE 3.9.0-old から OpenPNE 3.9.0 に変更

#2 kaoru n約4年前に更新

  • 対象バージョンOpenPNE 3.9.0 から OpenPNE 3.10.x に変更

他の形式にエクスポート: Atom PDF