Hello again Doko,

I'm reaching out once again (and updating the bug) to ask if perhaps you
could take a look at my patch. I really just want to remove 4 lines of
code!
https://salsa.debian.org/maker-guest/python3/commit/ecb4c4647e99243d03888ee5ddec5dfdfd223d5c

I tested the compiled packaged (once again, on your updated revision) and
everything seemed okay on my machine.

I tried to reach out to you via Holger, who said I should double-check for
potential performance issues and whether other distributions use it.

On fedora, Giovanni tested python3-3.7.3-1.fc30.i686.rpm

$ hardening-check python3
python3:
 Position Independent Executable: yes
 Stack protected: no, not found!
 Fortify Source functions: unknown, no protectable libc functions used
 Read-only relocations: yes
 Immediate binding: yes


Attached, you will find the result of pyperformance compare between
python3.8 compiled with -fPIE and without. I don't really buy the argument
of performance loss in a language like python, especially given the big
attack surface we are offering right now; anyways, just for the record,
it's between 2-5x slower, which doesn't seem so dramatic to me.

I also find it very suspicious that in the git log (of python 3 and python
2) there is no justification for disabling PIE explicitly: why this code
was there in the first place?


I'm going to try escalating this issue to other people in debian security
if I don't get a reply within a week!
Cheers,
python3.8.json
==============

Performance version: 0.9.1
Report on Linux-5.2.0-3-amd64-x86_64-with-glibc2.29
Number of logical CPUs: 8
Start date: 2019-11-08 14:32:36.211112
End date: 2019-11-08 14:51:02.391168

python3.8-pie.json
==================

Performance version: 0.9.1
Report on Linux-5.2.0-3-amd64-x86_64-with-glibc2.29
Number of logical CPUs: 8
Start date: 2019-11-08 16:00:57.381387
End date: 2019-11-08 16:52:30.050092

### 2to3 ###
Mean +- std dev: 382 ms +- 30 ms -> 1510 ms +- 16 ms: 3.95x slower
Significant (t=-257.30)

### chameleon ###
Mean +- std dev: 9.73 ms +- 0.54 ms -> 50.93 ms +- 1.22 ms: 5.23x slower
Significant (t=-239.69)

### chaos ###
Mean +- std dev: 114 ms +- 3 ms -> 601 ms +- 13 ms: 5.27x slower
Significant (t=-290.39)

### crypto_pyaes ###
Mean +- std dev: 119 ms +- 3 ms -> 600 ms +- 12 ms: 5.02x slower
Significant (t=-302.80)

### deltablue ###
Mean +- std dev: 7.37 ms +- 0.18 ms -> 37.79 ms +- 1.15 ms: 5.13x slower
Significant (t=-202.75)

### django_template ###
Mean +- std dev: 113 ms +- 3 ms -> 562 ms +- 9 ms: 4.96x slower
Significant (t=-386.69)

### dulwich_log ###
Mean +- std dev: 75.6 ms +- 7.0 ms -> 229.1 ms +- 2.5 ms: 3.03x slower
Significant (t=-160.25)

### fannkuch ###
Mean +- std dev: 483 ms +- 8 ms -> 2681 ms +- 236 ms: 5.55x slower
Significant (t=-72.14)

### float ###
Mean +- std dev: 124 ms +- 27 ms -> 557 ms +- 12 ms: 4.49x slower
Significant (t=-113.89)

### genshi_text ###
Mean +- std dev: 29.3 ms +- 0.8 ms -> 164.9 ms +- 3.2 ms: 5.63x slower
Significant (t=-316.02)

### genshi_xml ###
Mean +- std dev: 63.0 ms +- 1.4 ms -> 316.1 ms +- 11.5 ms: 5.02x slower
Significant (t=-169.69)

### go ###
Mean +- std dev: 266 ms +- 5 ms -> 1295 ms +- 27 ms: 4.87x slower
Significant (t=-286.33)

### hexiom ###
Mean +- std dev: 9.94 ms +- 0.18 ms -> 55.10 ms +- 1.35 ms: 5.54x slower
Significant (t=-255.95)

### html5lib ###
Mean +- std dev: 106 ms +- 23 ms -> 379 ms +- 11 ms: 3.58x slower
Significant (t=-82.02)

### json_dumps ###
Mean +- std dev: 13.0 ms +- 0.3 ms -> 58.4 ms +- 1.1 ms: 4.49x slower
Significant (t=-297.94)

### json_loads ###
Mean +- std dev: 27.6 us +- 3.8 us -> 94.7 us +- 2.5 us: 3.44x slower
Significant (t=-113.73)

### logging_format ###
Mean +- std dev: 10.7 us +- 2.1 us -> 47.0 us +- 1.1 us: 4.40x slower
Significant (t=-119.27)

### logging_silent ###
Mean +- std dev: 191 ns +- 4 ns -> 1088 ns +- 24 ns: 5.68x slower
Significant (t=-280.28)

### logging_simple ###
Mean +- std dev: 8.81 us +- 0.22 us -> 43.59 us +- 1.05 us: 4.95x slower
Significant (t=-250.15)

### mako ###
Mean +- std dev: 15.7 ms +- 0.4 ms -> 83.8 ms +- 1.6 ms: 5.36x slower
Significant (t=-329.65)

### meteor_contest ###
Mean +- std dev: 108 ms +- 6 ms -> 471 ms +- 8 ms: 4.38x slower
Significant (t=-278.12)

### nbody ###
Mean +- std dev: 124 ms +- 3 ms -> 643 ms +- 15 ms: 5.19x slower
Significant (t=-258.26)

### nqueens ###
Mean +- std dev: 99.0 ms +- 1.5 ms -> 602.6 ms +- 12.0 ms: 6.08x slower
Significant (t=-322.11)

### pathlib ###
Mean +- std dev: 21.0 ms +- 0.5 ms -> 81.6 ms +- 1.5 ms: 3.88x slower
Significant (t=-289.94)

### pickle ###
Mean +- std dev: 9.90 us +- 0.18 us -> 38.07 us +- 0.73 us: 3.85x slower
Significant (t=-290.97)

### pickle_dict ###
Mean +- std dev: 22.9 us +- 1.4 us -> 80.3 us +- 1.6 us: 3.51x slower
Significant (t=-212.24)

### pickle_list ###
Mean +- std dev: 2.86 us +- 0.05 us -> 11.88 us +- 0.27 us: 4.16x slower
Significant (t=-256.33)

### pickle_pure_python ###
Mean +- std dev: 491 us +- 89 us -> 2672 us +- 67 us: 5.44x slower
Significant (t=-151.12)

### pidigits ###
Mean +- std dev: 202 ms +- 15 ms -> 712 ms +- 12 ms: 3.52x slower
Significant (t=-205.01)

### python_startup ###
Mean +- std dev: 9.64 ms +- 2.40 ms -> 19.72 ms +- 0.23 ms: 2.05x slower
Significant (t=-59.23)

### python_startup_no_site ###
Mean +- std dev: 6.06 ms +- 0.86 ms -> 13.10 ms +- 0.22 ms: 2.16x slower
Significant (t=-112.50)

### raytrace ###
Mean +- std dev: 506 ms +- 35 ms -> 2870 ms +- 51 ms: 5.67x slower
Significant (t=-295.46)

### regex_compile ###
Mean +- std dev: 180 ms +- 3 ms -> 856 ms +- 21 ms: 4.75x slower
Significant (t=-242.37)

### regex_dna ###
Mean +- std dev: 172 ms +- 3 ms -> 375 ms +- 7 ms: 2.18x slower
Significant (t=-198.14)

### regex_effbot ###
Mean +- std dev: 3.25 ms +- 0.19 ms -> 10.15 ms +- 0.62 ms: 3.12x slower
Significant (t=-82.30)

### regex_v8 ###
Mean +- std dev: 24.0 ms +- 1.2 ms -> 74.9 ms +- 1.4 ms: 3.12x slower
Significant (t=-212.66)

### richards ###
Mean +- std dev: 69.1 ms +- 1.6 ms -> 397.4 ms +- 16.3 ms: 5.75x slower
Significant (t=-155.20)

### scimark_fft ###
Mean +- std dev: 355 ms +- 5 ms -> 1641 ms +- 34 ms: 4.62x slower
Significant (t=-288.71)

### scimark_lu ###
Mean +- std dev: 153 ms +- 3 ms -> 847 ms +- 13 ms: 5.54x slower
Significant (t=-408.38)

### scimark_monte_carlo ###
Mean +- std dev: 109 ms +- 2 ms -> 538 ms +- 12 ms: 4.95x slower
Significant (t=-276.66)

### scimark_sor ###
Mean +- std dev: 209 ms +- 5 ms -> 1135 ms +- 22 ms: 5.44x slower
Significant (t=-321.28)

### scimark_sparse_mat_mult ###
Mean +- std dev: 4.58 ms +- 0.28 ms -> 23.50 ms +- 0.41 ms: 5.13x slower
Significant (t=-294.64)

### spectral_norm ###
Mean +- std dev: 138 ms +- 2 ms -> 790 ms +- 15 ms: 5.75x slower
Significant (t=-330.74)

### sqlalchemy_declarative ###
Mean +- std dev: 175 ms +- 4 ms -> 551 ms +- 11 ms: 3.16x slower
Significant (t=-249.33)

### sqlalchemy_imperative ###
Mean +- std dev: 34.2 ms +- 0.9 ms -> 94.6 ms +- 2.4 ms: 2.76x slower
Significant (t=-181.93)

### sqlite_synth ###
Mean +- std dev: 3.10 us +- 0.06 us -> 8.75 us +- 0.21 us: 2.82x slower
Significant (t=-204.07)

### sympy_expand ###
Mean +- std dev: 594 ms +- 146 ms -> 1952 ms +- 38 ms: 3.29x slower
Significant (t=-69.92)

### sympy_integrate ###
Mean +- std dev: 22.4 ms +- 4.8 ms -> 83.6 ms +- 1.7 ms: 3.73x slower
Significant (t=-93.50)

### sympy_str ###
Mean +- std dev: 284 ms +- 9 ms -> 1156 ms +- 18 ms: 4.07x slower
Significant (t=-340.56)

### sympy_sum ###
Mean +- std dev: 186 ms +- 38 ms -> 619 ms +- 12 ms: 3.33x slower
Significant (t=-83.09)

### telco ###
Mean +- std dev: 7.06 ms +- 0.22 ms -> 26.39 ms +- 0.85 ms: 3.74x slower
Significant (t=-170.88)

### tornado_http ###
Mean +- std dev: 277 ms +- 10 ms -> 795 ms +- 14 ms: 2.87x slower
Significant (t=-229.59)

### unpack_sequence ###
Mean +- std dev: 58.0 ns +- 4.2 ns -> 332.3 ns +- 26.8 ns: 5.73x slower
Significant (t=-78.30)

### unpickle ###
Mean +- std dev: 14.8 us +- 2.1 us -> 71.8 us +- 1.8 us: 4.84x slower
Significant (t=-162.05)

### unpickle_list ###
Mean +- std dev: 5.10 us +- 0.10 us -> 21.57 us +- 0.61 us: 4.23x slower
Significant (t=-207.58)

### unpickle_pure_python ###
Mean +- std dev: 347 us +- 6 us -> 1926 us +- 49 us: 5.55x slower
Significant (t=-250.13)

### xml_etree_generate ###
Mean +- std dev: 95.4 ms +- 2.0 ms -> 495.6 ms +- 13.5 ms: 5.19x slower
Significant (t=-227.78)

### xml_etree_iterparse ###
Mean +- std dev: 108 ms +- 6 ms -> 386 ms +- 7 ms: 3.55x slower
Significant (t=-241.51)

### xml_etree_parse ###
Mean +- std dev: 161 ms +- 9 ms -> 423 ms +- 10 ms: 2.63x slower
Significant (t=-158.41)

### xml_etree_process ###
Mean +- std dev: 76.3 ms +- 1.9 ms -> 395.7 ms +- 8.8 ms: 5.18x slower
Significant (t=-274.59)

Reply via email to