BIND 10 #1292: Xfrin retransfer shared object "sqlite3_ds.so" not found

BIND 10 Development do-not-reply at isc.org
Wed Nov 30 17:48:11 UTC 2011


#1292: Xfrin retransfer shared object "sqlite3_ds.so" not found
-------------------------------------+-------------------------------------
                   Reporter:  jreed  |                 Owner:  jinmei
                       Type:         |                Status:  reviewing
  defect                             |             Milestone:
                   Priority:         |  Sprint-20111206
  critical                           |            Resolution:
                  Component:         |             Sensitive:  0
  Unclassified                       |           Sub-Project:  DNS
                   Keywords:         |  Estimated Difficulty:  4
            Defect Severity:  High   |           Total Hours:  0
Feature Depending on Ticket:         |
        Add Hours to Ticket:  5      |
                  Internal?:  0      |
-------------------------------------+-------------------------------------
Changes (by jelte):

 * owner:  jelte => jinmei


Comment:

 Replying to [comment:28 jinmei]:
 >
 > '''factory.cc'''
 >
 > > > > > - Don't we need a test for getDataSourceLibFile?
 >
 > > But checking the error message is a good idea, added a test. Do you
 > > know if there are dlopen() implementations that form different errors?
 > > (if so i'll have to modify the test a bit to first discover that
 error,
 > > or do some form of string.startswith check, but the error a direct
 > > EXPECT_EQ() gives is much nicer.
 >
 > Yeah actually that failed for my environment:
 > {{{
 > factory_unittest.cc:41: Failure
 > Value of: error
 >   Actual: "dlopen(/no_such_file.so, 10): image not found"
 > Expected: expected_error
 > Which is: "/no_such_file.so: cannot open shared object file: No such
 file or directory"
 > }}}
 >

 I was afraid of that :) (and it's even worse than I feared).

 > I think it makes more sense to make the what() message independent
 > from dlopen() implementation details, e.g.:
 > {{{#!c++
 >         isc_throw(DataSourceLibrarySymbolError, "dlopen failed for "
 >       << name << ": " << dlsym_error);
 > }}}
 >
 > and search for "dlopen failed for /no_such_file.so", etc.  That may
 > result in some redundant message like repeating the path name, but
 > assuming it's basically something "exceptional" I think it's
 > acceptable.
 >

 Right. Done.

 > Also, pathtest_helper would better be named pathtestHelper per naming
 > guideline.
 >

 ack, done

 > > Finally, here's the changelog proposal (it's a pretty long one for a
 > > relatively small change :p)
 > >
 >

 <snip>

 > BTW I think it's okay to write a long entry.  Our general consensus is
 > to rather provide longer ones than helplessly concise ones like just
 > "Fixed a b10-auth crash bug".
 >

 ack. I'll take your suggestions for the final entry

 > '''factory.h'''
 >
 > I don't see the reason for changing "module" to "library" here:
 > {{{#!c++
 > -/// The value of type can be a specific loadable module; if it already
 ends
 > +/// The value of type can be a specific loadable library; if it already
 ends
 >  /// with '.so', the loader will not add '_ds.so'.
 >  /// It may also be an absolute path; if it starts with '/', nothing is
 > -/// prepended. If it does not, the loadable module will be taken from
 the
 > -/// installation library directory.
 > +/// prepended. If it does not, the loadable library will be taken from
 the
 > +/// libexec/backends/ installation directory.
 > }}}
 >
 > I see the motivation of not using "module" for the installation
 > directory, but in this context we don't see any confusion in using
 > "module".  I also believe the term (dynamic) "loadable module" is
 > pretty well known (just like indicated by the "-module" LD flag).
 > Besides, even if we want to avoid "module" for them they are not
 > really "libraries" in their usual sense either, so I don't think the
 > latter is necessarily a better choice anyway.  Same comment applies to
 > tests/Makefile.am.
 >

 (see also discussion in jabber, I myself have no strong preference for
 any specific name either but we should indeed be consistent)

 Oh yeah I missed a number of them, updated, also updated MODULE_PATH
 to BACKEND_LIBRARY_PATH.

 > Also, I'm not sure if we really want to hardcode "libexec/backends"
 > here because we might change the decision of the naming/path, in which
 > case we could easily just update Makefile.am and forget update this
 > one.

 Replaced it with a reference to the const value in the
 datasrc_config.h file.

-- 
Ticket URL: <http://bind10.isc.org/ticket/1292#comment:30>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development


More information about the bind10-tickets mailing list