[mythtv] [mythtv-commits] Ticket #1147: permissions problem -> coredump
Dag Nygren
dag at newtech.fi
Tue Jan 31 20:52:51 UTC 2006
> On Tuesday 31 January 2006 14:54, Dag Nygren wrote:
> > Yes, this is an unfortunate thing in MythTV. There are umpteens of
> > functions calls where the return value is never checked, it is just
> > assumed that everything is OK. (For example look at all the calls to
> > InitCon() and the handling of the returned database pointer after
> > this).
> > This style is bound to create unnecessary bugs and crashes.
>
> Yeah, that's a great example.
>
> If your database isn't working, you have bigger issues.
Sure, but we are talking networking here. You can never assume
that a network connection stays up and running 100%, never.
> Regardless, most of
> the database queries _are_ checked for failure.
Not all of them by far.
I fixed one of my admittingly smallish problems by adding a check,
but that was not accepted as a patch as this was a problem only for
me and one other guy... (in TVRec::DoGetNextChannel() )
>It's completely unnecessary
> to check to see if the database is working before trying to run the query
> against it. Worst case in that situation is that it tries to reconnect and
> if it can't and the query still fails, well, that's probably already being
> tested for.
Really?
MSqlQuery::exec() is not trying to reconnect but just pass the query on to
QSqlQuery::exec() and then logs it. Can't see prepare( kicking the database
either.
> Furthermore, InitCon returns a structure, not a pointer, and nothing external
> to the database classes should be using the internal data of that class.
OK, sorry about that, it is a structure.
> Strangely enough, proper error handling is in those database classes.
Hmm.
Dag
More information about the mythtv-dev
mailing list