ARPA-SIMC / wreport

C++ library and applications to work with weather reports. The library provides featureful BUFR and CREX encoding and decoding.
Other
9 stars 9 forks source link

CI test of packages that use wreport after a wreport update #29

Closed dcesari closed 4 years ago

dcesari commented 5 years ago

with libwreport 3.21 and bufr2netcdf 1.5 (Fedora 28 and Centos):

bufr2netcdf -o obs obs_1.bufr
...
Program received signal SIGSEGV, Segmentation fault.
0x0000000000000000 in ?? ()
...
(gdb) where
#0  0x0000000000000000 in ?? ()
#1  0x00007ffff459e244 in wreport::bulletin::Interpreter::run (this=0x7fffffffd4a0) at bulletin/interpreter.cc:38
#2  0x00007ffff459e130 in wreport::bulletin::Interpreter::run (this=0x7fffffffd4a0) at bulletin/interpreter.cc:70
#3  0x0000000000413c11 in b2nc::Plan::build (this=0x64eb58, bulletin=...) at plan.cc:516
#4  0x000000000040bcef in b2nc::Arrays::add(std::unique_ptr<wreport::Bulletin, std::default_delete<wreport::Bulletin> >&&) (this=0x64eb58, 
    bulletin=<unknown type in /usr/lib/debug/usr/bin/bufr2netcdf.debug, CU 0x21f1a, DIE 0x2dd7a>) at arrays.cc:367
#5  0x0000000000406ef3 in b2nc::NCFiller::add(std::unique_ptr<wreport::BufrBulletin, std::default_delete<wreport::BufrBulletin> >&&, std::string const&) (this=0x64eb58, bulletin=<unknown type in /usr/lib/debug/usr/bin/bufr2netcdf.debug, CU 0xbd08, DIE 0x1cdf3>, 
    raw="BUFR\000\000\222\004\000\000\026\000\000\377\000\377\000\000\004\000\b\r\000\a\343\a\001\022\000\000\000\000\070\000\000\001\200\313\005\b\004\002@\r\003\fg\r\002B\000\037\001\vK\vL\v%\v'\vM\024*\024+\024,\024-\024)\002\005\002>\002F\002A\a\004!\032\000\000\000\070\000BVOEOGBA\377\261;\317\t\334\324G\343pd\000\001\371\213V\006/\377ۏ?\377\377\377\377\376\001\377\377\377\377\377\377\377\377\360\000\000\000\017\377\377\000\067\067\067\067") at convert.cc:219
#6  0x00000000004075e9 in b2nc::OutfileImpl::add_bufr(std::unique_ptr<wreport::BufrBulletin, std::default_delete<wreport::BufrBulletin> >&&, std::string const&) (this=0x64eb50, bulletin=<unknown type in /usr/lib/debug/usr/bin/bufr2netcdf.debug, CU 0xbd08, DIE 0x1cdf3>, 
    raw="BUFR\000\000\222\004\000\000\026\000\000\377\000\377\000\000\004\000\b\r\000\a\343\a\001\022\000\000\000\000\070\000\000\001\200\313\005\b\004\002@\r\003\fg\r\002B\000\037\001\vK\vL\v%\v'\vM\024*\024+\024,\024-\024)\002\005\002>\002F\002A\a\004!\032\000\000\000\070\000BVOEOGBA\377\261;\317\t\334\324G\343pd\000\001\371\213V\006/\377ۏ?\377\377\377\377\376\001\377\377\377\377\377\377\377\377\360\000\000\000\017\377\377\000\067\067\067\067") at convert.cc:309
#7  0x0000000000405f9b in b2nc::Dispatcher::add_bufr(std::unique_ptr<wreport::BufrBulletin, std::default_delete<wreport::BufrBulletin> >&&, std::string const&) (this=0x7fffffffd940, bulletin=<unknown type in /usr/lib/debug/usr/bin/bufr2netcdf.debug, CU 0xbd08, DIE 0x1cdf3>, 
    raw="BUFR\000\000\222\004\000\000\026\000\000\377\000\377\000\000\004\000\b\r\000\a\343\a\001\022\000\000\000\000\070\000\000\001\200\313\005\b\004\002@\r\003\fg\r\002B\000\037\001\vK\vL\v%\v'\vM\024*\024+\024,\024-\024)\002\005\002>\002F\002A\a\004!\032\000\000\000\070\000BVOEOGBA\377\261;\317\t\334\324G\343pd\000\001\371\213V\006/\377ۏ?\377\377\377\377\376\001\377\377\377\377\377\377\377\377\360\000\000\000\01---Type <return> to continue, or q <return> to quit---
7\377\377\000\067\067\067\067") at convert.cc:155
#8  0x00000000004055ff in b2nc::read_bufr (in=0x6472d0, out=..., fname=0x647058 "obs_1.bufr") at convert.cc:67
#9  0x0000000000405517 in b2nc::read_bufr (fname="obs_1.bufr", out=...) at convert.cc:47
#10 0x00000000004052e8 in main (argc=4, argv=0x7fffffffdab8) at bufr2netcdf.cc:112

with libwreport 3.18 and same bufr2netcdf (on Fedora24) it works.

I attach the bufr, but I think it does not depend on the message.

obs_1.zip

dcesari commented 5 years ago

Possibly useful information: the latest prebuilt smnd binary package, using wreport version 3.20 does not show the problem.

dcesari commented 5 years ago

A rebuild of bufr2netcdf against new wreport was enough to cure the problem. How can we detect these problems? Bufr2netcdf is not automatically tested at wreport updates and it's not the first time it fails runtime after updating wreport.

spanezz commented 5 years ago

Would it be possible to add to the CI a rebuild+test of bufr2netcdf and dballe after wreport tests pass?

edigiacomo commented 5 years ago

The rebuild should be triggered after a new packaged version of wreport or after a commit in the master branch of wreport?

dcesari commented 5 years ago

after a new packaged version is enough

Il giorno lun 29 lug 2019 alle ore 14:41 Emanuele Di Giacomo < notifications@github.com> ha scritto:

The rebuild should be triggered after a new packaged version of wreport or after a commit in the master branch of wreport?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/ARPA-SIMC/wreport/issues/29?email_source=notifications&email_token=AAFGLJS7IBWO6PZYGYTEA6LQB3QORA5CNFSM4H44BRQKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD3ASKOI#issuecomment-515974457, or mute the thread https://github.com/notifications/unsubscribe-auth/AAFGLJXX5Q7UBHJDLCBUH63QB3QORANCNFSM4H44BRQA .

-- ============================= Davide Cesari ============================ Arpae Emilia Romagna, Struttura IdroMeteoClima NWP modelling - Modellistica numerica previsionale Tel. +39 051525926

edigiacomo commented 5 years ago

It seems that Copr doesn't allow to fire a custom event (e.g. a Travis build), but we could schedule a daily build from Travis.

edigiacomo commented 5 years ago

@dcesari @brancomat @pat1 what do you think about a daily Travis rebuild of all our packages? This would solve the problem of automatically testing a software against the latest version of its dependencies.

dcesari commented 5 years ago

A daily rebuild is probably overshoot, wreport does not change often, I scheduled a monthly rebuild of bufr2netcdf, https://travis-ci.org/ARPA-SIMC/bufr2netcdf/settings do we need to extend to other packages?