Skip to content

test on windows and mac #4269

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

Merged
merged 18 commits into from
Dec 6, 2020
Merged

Conversation

MarcoGorelli
Copy link
Contributor

@MarcoGorelli MarcoGorelli commented Nov 28, 2020

Let's see what happens

Stackoverflow error on Windows 🤔

@MarcoGorelli MarcoGorelli changed the title test on mac and windows, lint config files test on windows Nov 28, 2020
@codecov
Copy link

codecov bot commented Nov 28, 2020

Codecov Report

Merging #4269 (56d43b0) into master (3fa3d1f) will decrease coverage by 0.04%.
The diff coverage is 90.90%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #4269      +/-   ##
==========================================
- Coverage   87.69%   87.64%   -0.05%     
==========================================
  Files          88       88              
  Lines       14355    14362       +7     
==========================================
- Hits        12588    12587       -1     
- Misses       1767     1775       +8     
Impacted Files Coverage Δ
pymc3/memoize.py 83.33% <83.33%> (-12.83%) ⬇️
pymc3/distributions/posterior_predictive.py 89.29% <100.00%> (ø)
pymc3/sampling.py 87.65% <100.00%> (+0.07%) ⬆️
pymc3/distributions/distribution.py 94.01% <0.00%> (-0.25%) ⬇️

@MarcoGorelli MarcoGorelli marked this pull request as draft November 28, 2020 14:10
@michaelosthege
Copy link
Member

michaelosthege commented Nov 29, 2020

The stack overflow 🐛 of test_sampling.py::TestSamplePriorPredictive::test_density_dist on Windows is real!

(pm3-dev) E:\Source\Repos\pymc3\pymc3\tests>pytest test_sampling.py::TestSamplePriorPredictive::test_density_dist -v
================================================================================================================================================================== test session starts ==================================================================================================================================================================
platform win32 -- Python 3.7.9, pytest-6.1.2, py-1.9.0, pluggy-0.13.1 -- c:\...\envs\pm3-dev\python.exe
cachedir: .pytest_cache
rootdir: E:\Source\Repos\pymc3, configfile: setup.cfg
plugins: cov-2.10.1
collected 1 item

test_sampling.py::TestSamplePriorPredictive::test_density_dist Windows fatal exception: stack overflow

Current thread 0x00004570 (most recent call first):
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 479 in get
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 497 in save
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 884 in _batch_setitems
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 859 in save_dict
  File "c:\...\envs\pm3-dev\lib\site-packages\dill\_dill.py", line 941 in save_module_dict
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 504 in save
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 662 in save_reduce
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 549 in save
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 885 in _batch_setitems
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 859 in save_dict
  File "c:\...\envs\pm3-dev\lib\site-packages\dill\_dill.py", line 941 in save_module_dict
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 504 in save
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 662 in save_reduce
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 549 in save
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 846 in _batch_appends
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 819 in save_list
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 504 in save
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 885 in _batch_setitems
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 859 in save_dict
  File "c:\...\envs\pm3-dev\lib\site-packages\dill\_dill.py", line 941 in save_module_dict
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 504 in save
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 662 in save_reduce
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 549 in save
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 890 in _batch_setitems
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 859 in save_dict
  File "c:\...\envs\pm3-dev\lib\site-packages\dill\_dill.py", line 941 in save_module_dict
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 504 in save
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 662 in save_reduce
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 549 in save
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 885 in _batch_setitems
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 859 in save_dict
  File "c:\...\envs\pm3-dev\lib\site-packages\dill\_dill.py", line 941 in save_module_dict
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 504 in save
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 662 in save_reduce
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 549 in save
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 885 in _batch_setitems
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 859 in save_dict
  File "c:\...\envs\pm3-dev\lib\site-packages\dill\_dill.py", line 941 in save_module_dict
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 504 in save
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 662 in save_reduce
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 549 in save
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 843 in _batch_appends
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 819 in save_list
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 504 in save
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 885 in _batch_setitems
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 859 in save_dict
  File "c:\...\envs\pm3-dev\lib\site-packages\dill\_dill.py", line 941 in save_module_dict
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 504 in save
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 662 in save_reduce
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 549 in save
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 885 in _batch_setitems
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 859 in save_dict
  File "c:\...\envs\pm3-dev\lib\site-packages\dill\_dill.py", line 941 in save_module_dict
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 504 in save
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 662 in save_reduce
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 549 in save
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 843 in _batch_appends
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 819 in save_list
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 504 in save
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 885 in _batch_setitems
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 859 in save_dict
  File "c:\...\envs\pm3-dev\lib\site-packages\dill\_dill.py", line 941 in save_module_dict
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 504 in save
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 662 in save_reduce
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 549 in save
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 885 in _batch_setitems
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 859 in save_dict
  File "c:\...\envs\pm3-dev\lib\site-packages\dill\_dill.py", line 941 in save_module_dict
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 504 in save
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 662 in save_reduce
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 549 in save
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 843 in _batch_appends
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 819 in save_list
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 504 in save
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 885 in _batch_setitems
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 859 in save_dict
  File "c:\...\envs\pm3-dev\lib\site-packages\dill\_dill.py", line 941 in save_module_dict
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 504 in save
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 662 in save_reduce
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 549 in save
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 885 in _batch_setitems
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 859 in save_dict
  File "c:\...\envs\pm3-dev\lib\site-packages\dill\_dill.py", line 941 in save_module_dict
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 504 in save
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 662 in save_reduce
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 549 in save
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 843 in _batch_appends
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 819 in save_list
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 504 in save
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 885 in _batch_setitems
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 859 in save_dict
  File "c:\...\envs\pm3-dev\lib\site-packages\dill\_dill.py", line 941 in save_module_dict
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 504 in save
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 662 in save_reduce
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 549 in save
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 885 in _batch_setitems
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 859 in save_dict
  File "c:\...\envs\pm3-dev\lib\site-packages\dill\_dill.py", line 941 in save_module_dict
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 504 in save
  File "c:\...\envs\pm3-dev\lib\pickle.py", line 662 in save_reduce
  ...

@Spaak Spaak added this to the 3.10 milestone Dec 2, 2020
@michaelosthege
Copy link
Member

@MarcoGorelli looks like we both made the same mistake in resolving the merge conflict?

I think I have it right now.. Can push it if you want

@MarcoGorelli
Copy link
Contributor Author

It's OK, done 😄

Let's see what errors mac / windows throw now...

@MarcoGorelli MarcoGorelli changed the title test on windows test on windows and mac Dec 5, 2020
@michaelosthege michaelosthege added bug macOS macOS related tests winOS windows OS related labels Dec 5, 2020
@MarcoGorelli
Copy link
Contributor Author

seems like mac tests pass!

@MarcoGorelli MarcoGorelli marked this pull request as ready for review December 5, 2020 15:07
michaelosthege and others added 6 commits December 5, 2020 19:55
tl:dr: The hashable helper function did not appropiately deal with tuples (and the test case did not actually test the memoization).

In the process of prior-predictive sampling a model involving a DensityDist, the _compile_theano_function function was called with arguments (sd__log_, []).
The _compile_theano_function has a pm.memo.memoize-decorator, which relies on the pm.memo.hashable for hashing of typically unhashable objects.
The "hashable" function incorrectly handled tuples, eventually causing a stackoverflow error on Windows.
Copy link
Member

@michaelosthege michaelosthege left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just noticed two small glitches, but with them fixed I think we're good to go!

@michaelosthege michaelosthege merged commit de47253 into pymc-devs:master Dec 6, 2020
@twiecki
Copy link
Member

twiecki commented Dec 6, 2020

This is amazing!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug macOS macOS related tests winOS windows OS related
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants