** Description changed:

+ [Impact]
+ Transfer of certain files will fail with an error, which had been
+ transferring properly prior to ruby2.5 (2.5.1-1ubuntu1.4), which
+ introduced improved openssl 1.1 support.
+ 
+ [Test Case]
+   $ lxc create ubuntu:18.04/amd64 ruby25-sru-1835968-bionic
+   $ lxc exec ruby25-sru-1835968-bionic -- bash
+   (...)
+   # sudo apt-get update
+   $ sudo apt-get -y install ruby-roadie ruby
+ 
+   # Preconfigure as Internet site
+   $ sudo debconf-set-selections <<< "postfix postfix/mailname string 
ruby25-sru-1835968-bionic.lxd"
+   $ sudo debconf-set-selections <<< "postfix postfix/main_mailer_type string 
'Internet Site'"
+   $ sudo apt-get install -y postfix
+ 
+   ./testcase-ruby-ssl.rb (private)
+ 
+   With the current Ubuntu version, the testcase generates a backtrace
+   ending in an error message involving ASCII/UTF8 confusion.
+ 
+   With the PPA version, the test file gets successfully delivered to a
+   local mailbox
+ 
+ 
+ [Regression Potential]
+ This code change affects the processing of buffer data sent via network
+ when using openssl.  Things to watch for especially are misbehaviors
+ with line separation handling, particularly with files containing mixed
+ CRLF / LF newlines.
+ 
+ The fix changes a patch that provides string optimization in network
+ transfers, so another thing to watch for would be severe increase in
+ memory utilization or decrease in throughput when doing heavy file
+ operations over the network.
+ 
+ 
+ [Fix]
+ Fix restores bit of code that had been dropped by a recent patch,
+ introducing a regression when transferring certain files using openssh.
+ 
+ PPA with test package: 
https://launchpad.net/~bryce/+archive/ubuntu/ruby2.5-sru-1835968
+   $ sudo add-apt-repository ppa:bryce/ruby2.5-sru-1835968
+   $ sudo apt-get update
+   $ sudo apt-get install ruby2.5
+ 
+ 
+ [Discussion]
+ The regression was seen after updating to the current version of
+ ruby2.5.  Examining the patches introduced in that release identified
+ 0009-test-test_pair-fix-deadlock-in-test_connect_accept_n.patch as the
+ source of the problem.  This patch is a collection of 17 commits
+ collected as a sync from the ruby-openssl upstream project into
+ ruby2.5's openssl extension library.  Running the testcase against these
+ patches identified the 17th one in the series as the problematic patch
+ (SHA 251b5be2), and incremental testing of each discrete change within
+ that commit identified a specific change to an if statement's
+ conditionals that triggered the failure.  See LP: #1835968's commentary
+ for more detailed discussion.
+ 
+ Restoring the original version of this conditional shouldn't adversely
+ affect the optimization provided in SHA 251b5be2.
+ 
+ [Original Report]
+ 
  Howdy,
  
  After the update of ruby2.5 (2.5.1-1ubuntu1.4) I started getting this
  error "incompatible character encodings: ASCII-8BIT and UTF-8"
  intermittently, depending on contents.  I copied
  /usr/lib/ruby/2.5.0/openssl/buffering.rb (as mentioned in the root of
  the traceback) over from buster/testing and the issues went away.
  
  When using 'file' to check the output documents for what failed in
  Ubuntu vs the ones that didn't, I got the following results:
  
  Works: "HTML document, UTF-8 Unicode text, with very long lines"
  Fails: "HTML document, UTF-8 Unicode text, with very long lines, with CRLF, 
LF line terminators"
  
  The diff of buffering.rb between Ubuntu and Debian is attached.

** Changed in: ruby2.5 (Ubuntu Bionic)
       Status: Triaged => In Progress

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1835968

Title:
  Regression in backported patch for openssl 1.1

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ruby2.5/+bug/1835968/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to