Bug 1572614 - terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::bad_lexical_cast> >'
Summary: terminate called after throwing an instance of 'boost::exception_detail::clon...
Keywords:
Status: CLOSED EOL
Alias: None
Product: Fedora
Classification: Fedora
Component: gnucash
Version: 28
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Bill Nottingham
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2018-04-27 12:20 UTC by Sam Varshavchik
Modified: 2019-05-28 19:58 UTC (History)
1 user (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2019-05-28 19:58:05 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Sam Varshavchik 2018-04-27 12:20:59 UTC
gnucash crashes at startup

[mrsam@thinkpad ~]$ rpm -q gnucash
gnucash-3.0-1.fc28.x86_64
[mrsam@thinkpad ~]$ gnucash
Found Finance::Quote version 1.47
terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::bad_lexical_cast> >'
  what():  bad lexical cast: source type value could not be interpreted as target
Aborted (core dumped)

abrt gives up on it, claims that "backtrace is unusable".

I can get a partial backtrace from gdb:


#0  0x00007fffed6c7f4b in raise () from /usr/lib64/libc.so.6
#1  0x00007fffed6b2591 in abort () from /usr/lib64/libc.so.6
#2  0x00007fffe1c5282d in __gnu_cxx::__verbose_terminate_handler() [clone .cold.1] () from /usr/lib64/libstdc++.so.6
#3  0x00007fffe1c58ccc in __cxxabiv1::__terminate(void (*)()) ()
   from /usr/lib64/libstdc++.so.6
#4  0x00007fffe1c57cd9 in __cxa_call_terminate ()
   from /usr/lib64/libstdc++.so.6
#5  0x00007fffe1c58698 in __gxx_personality_v0 ()
   from /usr/lib64/libstdc++.so.6
#6  0x00007fffe808d743 in _Unwind_RaiseException_Phase2 ()
   from /usr/lib64/libgcc_s.so.1
#7  0x00007fffe808e05d in _Unwind_Resume () from /usr/lib64/libgcc_s.so.1
#8  0x00007fffef6e0de1 in gnc_iso8601_to_time64_gmt.cold ()
   from /usr/lib64/gnucash/libgncmod-engine.so
#9  0x00007fffefab448d in string_to_time64(char const*, long*) ()
   from /usr/lib64/gnucash/libgnc-backend-xml-utils.so
#10 0x00007fffefab2d43 in dom_tree_to_time64(_xmlNode*) ()
   from /usr/lib64/gnucash/libgnc-backend-xml-utils.so
#11 0x00007fffefaa3823 in trn_date_posted_handler(_xmlNode*, void*) ()
   from /usr/lib64/gnucash/libgnc-backend-xml-utils.so
#12 0x00007fffefab32b6 in dom_tree_generic_parse(_xmlNode*, dom_tree_handler*, void*) () from /usr/lib64/gnucash/libgnc-backend-xml-utils.so
---Type <return> to continue, or q <return> to quit---
#13 0x00007fffefaa3d47 in dom_tree_to_transaction(_xmlNode*, _QofBook*) ()
   from /usr/lib64/gnucash/libgnc-backend-xml-utils.so
#14 0x00007fffefaa3e51 in gnc_transaction_end_handler(void*, _GSList*, _GSList*, void*, void*, void**, char const*) ()
   from /usr/lib64/gnucash/libgnc-backend-xml-utils.so
#15 0x00007fffefab5620 in sixtp_sax_end_handler(void*, unsigned char const*) ()
   from /usr/lib64/gnucash/libgnc-backend-xml-utils.so
#16 0x00007fffee0d1a1c in xmlParseEndTag1 () from /usr/lib64/libxml2.so.2
#17 0x00007fffee0d6a5b in xmlParseElement () from /usr/lib64/libxml2.so.2
#18 0x00007fffee0d5ff6 in xmlParseContent () from /usr/lib64/libxml2.so.2
#19 0x00007fffee0d68a9 in xmlParseElement () from /usr/lib64/libxml2.so.2
#20 0x00007fffee0d5ff6 in xmlParseContent () from /usr/lib64/libxml2.so.2
#21 0x00007fffee0d68a9 in xmlParseElement () from /usr/lib64/libxml2.so.2
#22 0x00007fffee0d6fba in xmlParseDocument () from /usr/lib64/libxml2.so.2
#23 0x00007fffefab590d in sixtp_parse_file_common(sixtp*, _xmlParserCtxt*, void*, void*, void**) () from /usr/lib64/gnucash/libgnc-backend-xml-utils.so
#24 0x00007fffefaa8771 in gnc_xml_parse_fd(sixtp*, _IO_FILE*, int (*)(char const*, void*, void*), void*, void*) ()
   from /usr/lib64/gnucash/libgnc-backend-xml-utils.so
#25 0x00007fffefaadd03 in qof_session_load_from_xml_file_v2_full(GncXmlBackend*, _QofBook*, void (*)(_xmlParserCtxt*, void*), void*, QofBookFileType) ()
   from /usr/lib64/gnucash/libgnc-backend-xml-utils.so
#26 0x00007fffefaa4d30 in GncXmlBackend::load(_QofBook*, QofBackendLoadType) ()
---Type <return> to continue, or q <return> to quit---
   from /usr/lib64/gnucash/libgnc-backend-xml-utils.so
#27 0x00007fffef7a7c16 in QofSessionImpl::load(void (*)(char const*, double))
    () from /usr/lib64/gnucash/libgncmod-engine.so
#28 0x00007ffff055134a in gnc_post_file_open ()
   from /usr/lib64/gnucash/libgncmod-gnome-utils.so
#29 0x0000555555557b45 in inner_main ()
#30 0x00007ffff77d23f1 in invoke_main_func ()
   from /usr/lib64/libguile-2.0.so.22
#31 0x00007ffff77a9e8e in c_body () from /usr/lib64/libguile-2.0.so.22
#32 0x00007ffff78476b4 in vm_regular_engine ()
   from /usr/lib64/libguile-2.0.so.22
#33 0x00007ffff77b3ff7 in scm_call_4 () from /usr/lib64/libguile-2.0.so.22
#34 0x00007ffff77aa645 in scm_i_with_continuation_barrier ()
   from /usr/lib64/libguile-2.0.so.22
#35 0x00007ffff77aa729 in scm_c_with_continuation_barrier ()
   from /usr/lib64/libguile-2.0.so.22
#36 0x00007ffff782dc92 in with_guile_and_parent ()
   from /usr/lib64/libguile-2.0.so.22
#37 0x00007fffed348e99 in GC_call_with_stack_base () from /usr/lib64/libgc.so.1
#38 0x00007ffff782e09c in scm_with_guile () from /usr/lib64/libguile-2.0.so.22
#39 0x00007ffff77d25f6 in scm_boot_guile () from /usr/lib64/libguile-2.0.so.22
#40 0x00005555555574f0 in main ()

Comment 1 Sam Varshavchik 2018-04-27 12:30:51 UTC
Installed debuginfo, was able to get more info on the backtrace:

(gdb) 
#13 0x00007fffefab448d in string_to_time64 (
    str=str@entry=0x55555753cc10 "102-01-02 06:02:58 -0456", 
    time=time@entry=0x7fffffffcf00)
    at /usr/src/debug/gnucash-3.0-1.fc28.x86_64/libgnucash/backend/xml/sixtp-utils.cpp:368
368	    *time = gnc_iso8601_to_time64_gmt (str);
(gdb) p str
$1 = (const gchar *) 0x55555753cc10 "102-01-02 06:02:58 -0456"


Unzip my file, looked through it, found this:

  <trn:date-posted>
    <ts:date>102-01-02 06:02:58 -0456</ts:date>
  </trn:date-posted>
  <trn:date-entered>
    <ts:date>2014-01-12 17:43:49 -0500</ts:date>
  </trn:date-entered>
  <trn:description>Reinv Dividend</trn:description>
  <trn:slots>
    <slot>
      <slot:key>date-posted</slot:key>
      <slot:value type="gdate">
        <gdate>102-01-02</gdate>
      </slot:value>
    </slot>

That's a pretty funky date.

Manually edited this date to 2014-01-12, saved it, and Gnucash was able to open it without crashing.

So... Some kind of bug in an older version of gnucash generated a crap date. Older version of GnuCash were able to deal with crap dates. gnucash 3.0 simply keels over when it tries to load them.

Comment 2 Ben Cotton 2019-05-02 19:18:29 UTC
This message is a reminder that Fedora 28 is nearing its end of life.
On 2019-May-28 Fedora will stop maintaining and issuing updates for
Fedora 28. It is Fedora's policy to close all bug reports from releases
that are no longer maintained. At that time this bug will be closed as
EOL if it remains open with a Fedora 'version' of '28'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora 28 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 3 Ben Cotton 2019-05-02 21:53:47 UTC
This message is a reminder that Fedora 28 is nearing its end of life.
On 2019-May-28 Fedora will stop maintaining and issuing updates for
Fedora 28. It is Fedora's policy to close all bug reports from releases
that are no longer maintained. At that time this bug will be closed as
EOL if it remains open with a Fedora 'version' of '28'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora 28 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 4 Ben Cotton 2019-05-28 19:58:05 UTC
Fedora 28 changed to end-of-life (EOL) status on 2019-05-28. Fedora 28 is
no longer maintained, which means that it will not receive any further
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version. If you
are unable to reopen this bug, please file a new report against the
current release. If you experience problems, please add a comment to this
bug.

Thank you for reporting this bug and we are sorry it could not be fixed.


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