Bug 1347982 - Sereal 3.003 chomps off "\n" during serialization
Summary: Sereal 3.003 chomps off "\n" during serialization
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora EPEL
Classification: Fedora
Component: perl-Sereal
Version: epel7
Hardware: All
OS: All
unspecified
low
Target Milestone: ---
Assignee: Denis Fateyev
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-06-19 16:49 UTC by marioroy
Modified: 2016-08-08 21:17 UTC (History)
2 users (show)

Fixed In Version: perl-Sereal-3.014-1.el7
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2016-08-08 21:17:50 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description marioroy 2016-06-19 16:49:46 UTC
Description of problem:

Sereal 3.003 chomps off "\n" from the input data if math is used against the data prior to serialization.

Version-Release number of selected component (if applicable):

Sereal 3.003

How reproducible:

my @a1 = grep { $_ % 3 == 0 } ( "1\n", "2\n", "3\n", "4\n", "5\n" );

my $frozen = encode_sereal(\@a1);
my $a2 = decode_sereal($frozen);

if ( $a2->[0] eq "3\n" ) {
   print "pass\n";
} else {
   print "fail\n";
}

Actual results:

fail

Expected results:

pass

Additional info:

Sereal 3.008 and 3.014 are fine and do not chomp "\n" leaving the data intact, similar to how Storable freeze and thaw behavior.

Beginning with MCE 1.800, Sereal is enabled automatically if available. But, only if 3.008 or later.

Best,

Mario

Comment 1 Denis Fateyev 2016-06-19 18:30:54 UTC
I cannot bump Sereal version in epel7 because of package dependencies.
As for newline chomp, could you provide a patch so I can merge and update the current version of package?

Comment 2 marioroy 2016-06-20 16:06:32 UTC
I have updated my test script 05_mce_grep.t in MCE 1.800 to chomp off "\n". Furthermore, MCE 1.800 enables Sereal only if 3.008 or higher. Otherwise, Storable is used. All is well in that sense and really not a problem for MCE or for existing packages that depend on Sereal 3.003.

Please feel free to close this ticket if updating perl-Sereal to 3.008 or 3.014 is not feasible at this time. There are many bug fixes in Sereal between 3.003 and 3.008. So, am not sure if perl-Sereal in RedHat will ever reach 3.008 or 3.014.

Kind regards,

Mario

Comment 3 Denis Fateyev 2016-06-20 16:36:46 UTC
It's very unlikely that Sereal version will be increased in epel7, since some versioned dependencies were introduced in later versions, which break package builds. So there is no option for easy upgrade.

Comment 4 Paul Howarth 2016-06-21 08:06:02 UTC
I had a look at this this morning.

 * perl-Sereal 3.008 needs perl-Sereal-Decoder 3.008 and perl-Sereal-Encoder 3.008

 * perl-Sereal-Decoder 3.008 and perl-Sereal-Encoder 3.008 each want ExtUtils::MakeMaker 7.0 or later, whilst EL7 has 6.68

The EU::MM 7.0 dependency is expressed in the Makefile.PL of these dists, but I found that if I dropped the version requirement from the BuildRequires in the spec file, the packages built fine (and perl-Sereal built fine against them), without even any complaints about the version when running "perl Makefile.PL".

The upstream commit where this requirement was introduced was:
https://github.com/Sereal/Sereal/commit/d70a09082

The justification given was that the modules were failing to build properly with some older versions of EU::MM, but that doesn't appear to affect EL-7 builds, so perhaps there is a way forward here after all?

Comment 5 Denis Fateyev 2016-06-21 09:22:48 UTC
The module author explicitly introduced versioned EU::MM deps, if I remember correctly, to solve some bugs with old EU::MM, so it's not so straightforward.
"ExtUtils::MakeMaker and CPAN::Meta need to be up to date or the META files miss stuff", et al.

Although I can prepare "bumped" versions for test if anybody agrees to test updated versions thoroughly (please let me know in this case).

Comment 6 Denis Fateyev 2016-07-23 19:54:48 UTC
Discussed again, tested and reopened.
Testing COPR: https://copr.fedorainfracloud.org/coprs/dfateyev/perl-Sereal/

Comment 7 Fedora Update System 2016-07-23 19:56:16 UTC
perl-Sereal-3.014-1.el7 perl-Sereal-Encoder-3.014-1.el7 perl-Sereal-Decoder-3.014-1.el7 has been submitted as an update to Fedora EPEL 7. https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2016-6c9c1e1cdb

Comment 8 Fedora Update System 2016-07-25 03:47:58 UTC
perl-Sereal-3.014-1.el7, perl-Sereal-Decoder-3.014-1.el7, perl-Sereal-Encoder-3.014-1.el7 has been pushed to the Fedora EPEL 7 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2016-6c9c1e1cdb

Comment 9 Fedora Update System 2016-08-08 21:17:48 UTC
perl-Sereal-3.014-1.el7, perl-Sereal-Decoder-3.014-1.el7, perl-Sereal-Encoder-3.014-1.el7 has been pushed to the Fedora EPEL 7 stable repository. If problems still persist, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.