[wp-trac] [WordPress Trac] #47186: At least one function in /wp-includes/sodium_compat/src/Core32 times out on 32 bit servers

WordPress Trac noreply at wordpress.org
Fri May 10 02:50:18 UTC 2019


#47186: At least one function in /wp-includes/sodium_compat/src/Core32 times out on
32 bit servers
-------------------------------------+-------------------------------------
 Reporter:  lovingboth               |       Owner:
                                     |  paragoninitiativeenterprises
     Type:  defect (bug)             |      Status:  reopened
 Priority:  normal                   |   Milestone:  5.2.1
Component:  Upgrade/Install          |     Version:  5.2
 Severity:  normal                   |  Resolution:
 Keywords:  needs-testing has-patch  |     Focuses:
  commit                             |
-------------------------------------+-------------------------------------

Comment (by dd32):

 I'm still catching up on the changes in Sodium_Compat, but I can say that
 yes, we were aware it could be slow on some systems (32bit, windows, and
 lower-powered PHPs) but were also hopeful that bumping the minimum PHP
 from 5.2 to 5.6 was going to help reduce affected installs - of course
 when you're operating on the WordPress-scale of things though, you're
 always bound to run into all of the edge-cases, it's a balancing act of
 pushing the envelope but also having a fallback and a safe exit to avoid
 breaking things.

 Currently the only two types of packages which we are intentionally
 allowing signatures to be served for are A) Themes and B) WordPress
 releases.

 During the 5.2-development cycle a few issues came up, and we used that
 data to gauge problems as they occurred and to find the appropriate way
 forward.
  - One of the things we did was move from Signing entire ZIPs (10M) to
 signing Hashes instead (88Bytes?) with the hope that that would bypass any
 speed concerns - and it did in the test scenario's we worked with.
  - Another was finding out that [https://bugs.php.net/bug.php?id=75938
 there's a bug in PHP 7.2.0-7.2.2 which caused PHP Math functions to return
 incorrect results] - something that few would have expected, but one which
 would cause signature verification (and a whole bunch of other random
 things) to not work as expected.

 Thankfully this issue has been reported prior to us shipping WordPress
 5.2.1, which means that the update failures being experienced are limited
 to a) nightly/development builds and b) theme updates/installs.

 Moving forward, there's a few things we're going to need to do IMHO:
  - Stop serving signatures for Themes immediately (which will bypass this
 timeout issue for existing WP 5.2.0 installs - I've just done this, caches
 may take a few minutes to clear.
  - Include the updates to Sodium_Compat in 5.2.1
  - Include the signature bypass for likely-to-be-slow systems (That will
 also give us some telemetry for number of affected hosts)
  - Not serve signatures for the WordPress 5.2.1 packages, avoiding any
 failed updates due to Sodium_Compat timeouts
  - Once 5.2.1 is released, we can re-enable signatures for Themes and see
 if the timeouts occur again (hopefully they don't)

 The reason for not serving WP 5.2.1 signatures is that we don't include
 enough system-details on the API requests to allow us to conditionally
 serve signatures to only systems which aren't affected by this.

 ----

 Looking at [attachment:"47186.patch"] Although I recognise that the latest
 Sodium_Compat will help greatly, What's your opinion on making that overly
 safe and using 60s instead @paragoninitiativeenterprises?
 I'd rather not have to bump the required time up later.. I'm mostly
 considering lower-processing-power systems right now such as ARM devices,
 overly full shared hosts and super-low-cpu VMs.

-- 
Ticket URL: <https://core.trac.wordpress.org/ticket/47186#comment:25>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list