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

Already on GitHub? Sign in to your account

riakc_map QC test occasionally fails #159

Merged
merged 1 commit into from Feb 19, 2014

Conversation

Projects
None yet
2 participants
Contributor

seancribbs commented Feb 19, 2014

It seems to only fail maybe 1 in 20 times or so. Here's an example output when it does fail:

  riakc_datatype:114: datatypes_test_ ( prop_modified(riakc_map) ).................Failed! After 15 tests.
{{map,[{{<<"\t\\">>,set},[<<"O<C1>">>]}],[],[],[],<<>>},
 {update,[{<<"<B8><D5>">>,counter},#Fun<riakc_map.9.9328923>]}}
Shrinking...(3 times)
{{map,[],[],[],[],<<>>},{update,[{<<>>,counter},#Fun<riakc_map.9.9328923>]}}
*failed*
in function riakc_datatype:'-datatypes_test_/0-fun-4-'/3 (src/riakc_datatype.erl, line 114)
**error:{assertEqual_failed,[{module,riakc_datatype},
                     {line,114},
                     {expression,"quickcheck ( ? QC_OUT ( eqc : testing_time ( 2 , ? MODULE : Prop ( Mod ) ) ) )"},
                     {expected,true},
                     {value,false}]}

On master, 2e5d946.

@reiddraper reiddraper added the Bug label Feb 18, 2014

Contributor

seancribbs commented Feb 19, 2014

I believe I've narrowed this down to these lines. The failure case is essentially "update this entry that does not exist, but with what is effectively a noop". Regardless of whether the result is a noop, applying an update to an entry should imply that the user wanted it to exist if it didn't before. I don't think this will come up in actual usage, but it's worth having sensible behavior for this corner case.

Contributor

reiddraper commented Feb 19, 2014

Are there any Riak issues to consider, or is this strictly a client-semantics thing?

Contributor

seancribbs commented Feb 19, 2014

@reiddraper This is strictly client-semantics.

Contributor

reiddraper commented Feb 19, 2014

I've run the individual test for 30-minutes, and it passed.

erl -pa deps/*/ebin -pa .eunit
eqc:quickcheck(eqc:testing_time(60 * 30, riakc_datatype:prop_modified(riakc_map))).
...
OK, passed 953982 tests
true

And run over 80 make tests so far, without failure. +1. Great work!

@seancribbs seancribbs added a commit that referenced this pull request Feb 19, 2014

@seancribbs seancribbs Merge pull request #159 from basho/bugfix/sdc/riakc-map-eqc
riakc_map QC test occasionally fails
9b45959

@seancribbs seancribbs merged commit 9b45959 into master Feb 19, 2014

@seancribbs seancribbs deleted the bugfix/sdc/riakc-map-eqc branch Feb 19, 2014

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment