Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

一部のバグに対して再現性がない #620

Open
mtj0928 opened this issue Apr 29, 2019 · 5 comments
Open

一部のバグに対して再現性がない #620

mtj0928 opened this issue Apr 29, 2019 · 5 comments
Assignees
Labels
bug Something isn't working priority: critical Should be worked on ASAP

Comments

@mtj0928
Copy link
Contributor

mtj0928 commented Apr 29, 2019

D4JのMath 13に対して,実行ログが毎回異なる. 
全てのmathの実験結果が異なるわけではない(むしろ多くの場合は異ならない).
原因は不明

@mtj0928 mtj0928 added bug Something isn't working priority: critical Should be worked on ASAP labels Apr 29, 2019
@mtj0928
Copy link
Contributor Author

mtj0928 commented Apr 29, 2019

Math 12でも発生

@mtj0928 mtj0928 self-assigned this May 22, 2019
@shinsuke-mat
Copy link
Member

作業メモ

math013のkgp構成,1世代 x 20個体 (タイムアウト3000秒)

$ cd math013
$ cat kgenprog.toml
root-dir = "./"
src  = ["src/main/java"]
test = ["src/test/java"]
exec-test = ["org.apache.commons.math3.optimization.fitting.PolynomialFitterTest"]
max-generation = 1
mutation-generating-count = 20
time-limit = 3000
log-level = "DEBUG"

kgpのバージョン

$ cd kgp
$ git show
commit 9cafd2e0f1630300700bf672ac461596147fb92b (HEAD -> master, tag: v1.3.5, origin/master, origin/HEAD)
...
$ gradle assemble
$ kgp=$(realpath build/libs/kGenProg-1.3.5.jar)

1回目 (win環境なのでencoding指定付き)

$ (cd ../math013; echo java -Dfile.encoding=UTF8 -jar $kgp)
...
Variants: generated 20, build-succeeded 2, build-failed 15, syntax-invalid 1, redundant 2
Fitness: max 0.7777777777777778(1), min 0.0(1), ave 0.3888888888888889

2回目

$ (cd ../math013; echo java -Dfile.encoding=UTF8 -jar $kgp)
...
Variants: generated 20, build-succeeded 2, build-failed 15, syntax-invalid 1, redundant 2
Fitness: max 0.8888888888888888(1), min 0.0(1), ave 0.4444444444444444

確かに再現していない
1世代目のsyntax-validの1個体目から結果が変わってる

@shinsuke-mat
Copy link
Member

shinsuke-mat commented May 22, 2019

可視化の結果
1回目
image

2回目
image

適用されている操作が全く同じなのに,テストの結果が異なる.
AST操作自体は再現されているが,テスト結果が再現しない問題っぽい.

テストが再現しないのでfitnessが変わる
→ それ以降の結果がどんどん変わっていく.

テストメソッド PolynomialFitterTest#testRedundantUnsolvable が怪しい.
path = src/test/java/org/apache/commons/math3/optimization/fitting/PolynomialFitterTest.java

@shinsuke-mat
Copy link
Member

一旦作業ミスがあった古いコメントを削除.
後学のため,作業ミスの混乱を排除してコメントを書き直し.

@shinsuke-mat
Copy link
Member

いろいろ前提情報

注意

mathにはほぼ同名っぽい2つのテストクラスがある.
見間違えると混乱するので注意.

org.apache.commons.math3.optimization.fitting.PolynomialFitterTest // こっちがd4jの言う落ちるテスト
org.apache.commons.math3._____________fitting.PolynomialFitterTest // こっちは関係ない

前者が古いテストで古いObsoleteなAPIを利用している.
後者が新しいテストっぽい.
後者は今回の問題には全く関係ないので無視すること.

ラベル付け

  • PolynomialFitterTest#testRedundantUnsolvabletestR
  • PolynomialFitterTest#testLargeSampletestL

テストがどうfailするか

d4j曰く,testLOutOfMemoryErrorで死ぬバグらしい.
kgpの可視化を見る限り,testR が再現していないようには見える.

なお,kgpでは testL はタイムアウトで死ぬ.

start: org.apache.commons.math3.optimization.fitting.PolynomialFitterTest#testLargeSample
fail: test timed out after 10 seconds

OutOfMemory が発生する前に10秒経過で落ちているととらえると納得.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working priority: critical Should be worked on ASAP
Projects
None yet
Development

No branches or pull requests

2 participants