Binary compatibility report for the mongoDB library between 1.5.2 and 1.5.3 versions on x86
Test Info
Library Name | mongoDB |
Version #1 | 1.5.2 |
Version #2 | 1.5.3 |
CPU Architecture | x86 |
GCC Version | 4.5 |
Test Results
Total Header Files | 1 |
Total Shared Libraries | 1 |
Total Symbols / Types | 385 / 302 |
Verdict | Incompatible (10.91%) |
---|
Problem Summary
| Severity | Count |
---|
Added Symbols | - | 13 |
Removed Symbols | High | 6 |
Problems with Data Types | High | 7 |
Medium | 0 |
Low | 4 |
Problems with Symbols | High | 2 |
Medium | 0 |
Low | 0 |
Problems with Constants | Low | 0 |
Other Changes | - | 1 |
Added Symbols (13)
dbclient.h,
libmongoclient.so
namespace mongo
DBClientConnection::killCursor ( long long cursorID )
[ symbol: _ZN5mongo18DBClientConnection10killCursorEx ]
DBClientConnection::query ( boost::function<void(BSONObj const&)> f, std::string const& ns, Query query, BSONObj const* fieldsToReturn )
[ symbol: _ZN5mongo18DBClientConnection5queryEN5boost8functionIFvRKNS_7BSONObjEEEERKSsNS_5QueryEPS4_ ]
DBClientConnection::recv ( Message& m )
[ symbol: _ZN5mongo18DBClientConnection4recvERNS_7MessageE ]
DBClientPaired::killCursor ( long long cursorID )
[ symbol: _ZN5mongo14DBClientPaired10killCursorEx ]
DBClientWithCommands::createCollection ( std::string const& ns, long long size, bool capped, int max, BSONObj* info )
[ symbol: _ZN5mongo20DBClientWithCommands16createCollectionERKSsxbiPNS_7BSONObjE ]
DBClientWithCommands::getLastErrorString ( BSONObj const& res ) [static]
[ symbol: _ZN5mongo20DBClientWithCommands18getLastErrorStringERKNS_7BSONObjE ]
DBConnector::recv ( Message& m )
[ symbol: _ZN5mongo11DBConnector4recvERNS_7MessageE ]
json.h,
libmongoclient.so
namespace mongo
fromjson ( char const* str, int* len )
[ symbol: _ZN5mongo8fromjsonEPKcPi ]
lasterror.h,
libmongoclient.so
namespace mongo
LastErrorHolder::disconnect ( int clientId )
[ symbol: _ZN5mongo15LastErrorHolder10disconnectEi ]
raiseError ( int code, char const* msg )
[ symbol: _ZN5mongo10raiseErrorEiPKc ]
message.h,
libmongoclient.so
namespace mongo
AbstractMessagingPort::getClientId ( )
[ symbol: _ZN5mongo21AbstractMessagingPort11getClientIdEv ]
mutex.h,
libmongoclient.so
namespace mongo
MutexDebugger::MutexDebugger [in-charge] ( )
[ symbol: _ZN5mongo13MutexDebuggerC1Ev ]
MutexDebugger::MutexDebugger [not-in-charge] ( )
[ symbol: _ZN5mongo13MutexDebuggerC2Ev ]
to the top
Removed Symbols (6)
dbclient.h,
libmongoclient.so
namespace mongo
DBClientWithCommands::createCollection ( std::string const& ns, unsigned int size, bool capped, int max, BSONObj* info )
[ symbol: _ZN5mongo20DBClientWithCommands16createCollectionERKSsjbiPNS_7BSONObjE ]
json.h,
libmongoclient.so
namespace mongo
fromjson ( char const* str )
[ symbol: _ZN5mongo8fromjsonEPKc ]
sp_counted_impl.hpp,
libmongoclient.so
namespace boost::detail
sp_counted_impl_pd<boost::thread_specific_ptr<std::set<char const*> >::delete_data*,do_heap_delete<boost::thread_specific_ptr<std::set<char const*> >::delete_data> >::dispose ( )
[ symbol: _ZN5boost6detail18sp_counted_impl_pdIPNS_19thread_specific_ptrISt3setIPKcSt4lessIS5_ESaIS5_EEE11delete_dataENS0_14do_heap_deleteISB_EEE7disposeEv ]
sp_counted_impl_pd<boost::thread_specific_ptr<std::set<char const*> >::delete_data*,do_heap_delete<boost::thread_specific_ptr<std::set<char const*> >::delete_data> >::get_deleter ( sp_typeinfo const& ti )
[ symbol: _ZN5boost6detail18sp_counted_impl_pdIPNS_19thread_specific_ptrISt3setIPKcSt4lessIS5_ESaIS5_EEE11delete_dataENS0_14do_heap_deleteISB_EEE11get_deleterERKSt9type_info ]
sp_counted_impl_pd<boost::thread_specific_ptr<std::set<char const*> >::delete_data*,do_heap_delete<boost::thread_specific_ptr<std::set<char const*> >::delete_data> >::~sp_counted_impl_pd [in-charge-deleting] ( )
[ symbol: _ZN5boost6detail18sp_counted_impl_pdIPNS_19thread_specific_ptrISt3setIPKcSt4lessIS5_ESaIS5_EEE11delete_dataENS0_14do_heap_deleteISB_EEED0Ev ]
sp_counted_impl_pd<boost::thread_specific_ptr<std::set<char const*> >::delete_data*,do_heap_delete<boost::thread_specific_ptr<std::set<char const*> >::delete_data> >::~sp_counted_impl_pd [in-charge] ( )
[ symbol: _ZN5boost6detail18sp_counted_impl_pdIPNS_19thread_specific_ptrISt3setIPKcSt4lessIS5_ESaIS5_EEE11delete_dataENS0_14do_heap_deleteISB_EEED1Ev ]
to the top
Problems with Data Types, High Severity (7)
bsonobjbuilder.h
namespace mongo
[+] class BSONObjBuilder (1)
| Change |
Effect |
1 | Size of this class has been changed from 36 bytes to 40 bytes. | 1) The class has only inline or auto-generated constructors which will be copied to applications at compile time and will allocate an older memory layout. Call of any exported method of this class may access a memory outside the allocated objects or inside the older memory structure and result in crash or incorrect behavior of applications. 2) The memory layout and size of subclasses will be changed. |
[+] affected symbols (7)
BSONObjBuilder::appendAsNumber ( std::string const& fieldName, std::string const& data )This method is from 'BSONObjBuilder' class.
BSONObjBuilder::appendKeys ( BSONObj const& keyPattern, BSONObj const& values )This method is from 'BSONObjBuilder' class.
BSONObjBuilder::appendMaxForType ( std::string const& field, int type )This method is from 'BSONObjBuilder' class.
BSONObjBuilder::appendMinForType ( std::string const& field, int type )This method is from 'BSONObjBuilder' class.
dotted2nested ( BSONObjBuilder& b, BSONObj const& obj )1st parameter 'b' (reference) has base type 'BSONObjBuilder'.
LastError::appendSelf ( BSONObjBuilder& b )1st parameter 'b' (reference) has base type 'BSONObjBuilder'.
nested2dotted ( BSONObjBuilder& b, BSONObj const& obj, std::string const& base )1st parameter 'b' (reference) has base type 'BSONObjBuilder'.
dbclient.h
namespace mongo
[+] class DBClientBase (2)
| Change |
Effect |
1 | Size of v-table in this class has been changed from 136 bytes to 144 bytes. | The layout of v-tables in its subclasses has been changed. Call of any virtual method in subclasses may result in crash or incorrect behavior of applications. |
2 | Pure virtual method DBClientBase::killCursor ( long long cursorID ) has been added to this class. | 1) Applications will not provide the implementation for this pure virtual method and therefore cause a crash in the library trying to call this method. 2) The layout of v-table has been changed. Call of any virtual method at higher position in this class or its subclasses may result in crash or incorrect behavior of applications. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 34 entries | Virtual Table (New) - 36 entries |
---|
0 | (int (*)(...))0 | (int (*)(...))0 |
4 | (int (*)(...))(& typeinfo) | (int (*)(...))(& typeinfo) |
8 | DBClientBase::query | DBClientBase::query |
12 | DBClientBase::getMore | DBClientBase::getMore |
16 | DBClientBase::insert | DBClientBase::insert |
20 | DBClientBase::insert | DBClientBase::insert |
24 | DBClientBase::remove | DBClientBase::remove |
28 | DBClientBase::update | DBClientBase::update |
32 | ~DBClientBase | ~DBClientBase |
36 | ~DBClientBase | ~DBClientBase |
40 | DBClientInterface::findOne | DBClientInterface::findOne |
44 | DBClientWithCommands::runCommand | DBClientWithCommands::runCommand |
48 | DBClientWithCommands::auth | DBClientWithCommands::auth |
52 | DBClientWithCommands::isMaster | DBClientWithCommands::isMaster |
56 | DBClientWithCommands::dropCollection | DBClientWithCommands::dropCollection |
60 | DBClientWithCommands::ensureIndex | DBClientWithCommands::ensureIndex |
64 | DBClientWithCommands::resetIndexCache | DBClientWithCommands::resetIndexCache |
68 | DBClientWithCommands::getIndexes | DBClientWithCommands::getIndexes |
72 | DBClientWithCommands::dropIndex | DBClientWithCommands::dropIndex |
76 | DBClientWithCommands::dropIndex | DBClientWithCommands::dropIndex |
80 | DBClientWithCommands::dropIndexes | DBClientWithCommands::dropIndexes |
84 | DBClientWithCommands::reIndex | DBClientWithCommands::reIndex |
88 | DBClientWithCommands::dropDatabase | DBClientWithCommands::dropDatabase |
92 | __cxa_pure_virtual | __cxa_pure_virtual |
96 | __cxa_pure_virtual | __cxa_pure_virtual |
100 | __cxa_pure_virtual | __cxa_pure_virtual |
104 | (int (*)(...))-0x000000020 | __cxa_pure_virtual |
108 | (int (*)(...))(& typeinfo) | (int (*)(...))-0x000000020 |
112 | non-virtual thunk | (int (*)(...))(& typeinfo) |
116 | non-virtual thunk | non-virtual thunk |
120 | __cxa_pure_virtual | non-virtual thunk |
124 | __cxa_pure_virtual | __cxa_pure_virtual |
128 | __cxa_pure_virtual | __cxa_pure_virtual |
132 | DBConnector::checkResponse | __cxa_pure_virtual |
136 | | DBConnector::checkResponse |
140 | | DBConnector::recv |
[+] affected symbols (12)
DBClientBase::getMore ( std::string const& ns, long long cursorId, int nToReturn, int options )This method is from 'DBClientBase' class.
DBClientBase::getServerAddress ( ) constThis method is from 'DBClientBase' class.
DBClientBase::insert ( std::string const& ns, BSONObj obj )This method is from 'DBClientBase' class.
DBClientBase::insert ( std::string const& ns, std::vector<BSONObj>const& v )This method is from 'DBClientBase' class.
DBClientBase::isFailed ( ) constThis method is from 'DBClientBase' class.
DBClientBase::query ( std::string const& ns, Query query, int nToReturn, int nToSkip, BSONObj const* fieldsToReturn, int queryOptions, int batchSize )This method is from 'DBClientBase' class.
DBClientBase::remove ( std::string const& ns, Query q, bool justOne )This method is from 'DBClientBase' class.
DBClientBase::update ( std::string const& ns, Query query, BSONObj obj, bool upsert, bool multi )This method is from 'DBClientBase' class.
DBClientBase::~DBClientBase [in-charge] ( )This method is from 'DBClientBase' class.
DBClientConnection::checkResponse ( char const* data, int nReturned )This method is from derived class 'DBClientConnection'.
DBClientConnection::connect ( std::string const& serverHostname, std::string& errmsg )This method is from derived class 'DBClientConnection'.
DBClientPaired::checkResponse ( char const* data, int nReturned )This method is from derived class 'DBClientPaired'.
[+] class DBConnector (2)
| Change |
Effect |
1 | Size of v-table in this class has been changed from 32 bytes to 36 bytes. | The layout of v-tables in its subclasses has been changed. Call of any virtual method in subclasses may result in crash or incorrect behavior of applications. |
2 | Virtual method DBConnector::recv ( Message& m ) has been added to this class. | The layout of v-table has been changed. Call of any virtual method at higher position in this class or its subclasses may result in crash or incorrect behavior of applications. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 8 entries | Virtual Table (New) - 9 entries |
---|
0 | (int (*)(...))0 | (int (*)(...))0 |
4 | (int (*)(...))(& typeinfo) | (int (*)(...))(& typeinfo) |
8 | ~DBConnector | ~DBConnector |
12 | ~DBConnector | ~DBConnector |
16 | __cxa_pure_virtual | __cxa_pure_virtual |
20 | __cxa_pure_virtual | __cxa_pure_virtual |
24 | __cxa_pure_virtual | __cxa_pure_virtual |
28 | DBConnector::checkResponse | DBConnector::checkResponse |
32 | | DBConnector::recv |
[+] affected symbols (8)
DBClientConnection::checkResponse ( char const* data, int nReturned )This method is from derived class 'DBClientConnection'.
DBClientConnection::connect ( std::string const& serverHostname, std::string& errmsg )This method is from derived class 'DBClientConnection'.
DBClientPaired::checkResponse ( char const* data, int nReturned )This method is from derived class 'DBClientPaired'.
DBConnector::call ( Message& toSend, Message& response, bool assertOk )This method is from 'DBConnector' class.
DBConnector::checkResponse ( std::string const& data, int nReturned )This method is from 'DBConnector' class.
DBConnector::say ( Message& toSend )This method is from 'DBConnector' class.
DBConnector::sayPiggyBack ( Message& toSend )This method is from 'DBConnector' class.
DBConnector::~DBConnector [in-charge] ( )This method is from 'DBConnector' class.
message.h
namespace mongo
[+] class AbstractMessagingPort (1)
| Change |
Effect |
1 | Virtual method AbstractMessagingPort::getClientId ( ) has been added to this class. | The layout of v-table has been changed. Call of any virtual method at higher position in this class or its subclasses may result in crash or incorrect behavior of applications. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 8 entries | Virtual Table (New) - 9 entries |
---|
0 | (int (*)(...))0 | (int (*)(...))0 |
4 | (int (*)(...))(& typeinfo) | (int (*)(...))(& typeinfo) |
8 | ~AbstractMessagingPort | ~AbstractMessagingPort |
12 | ~AbstractMessagingPort | ~AbstractMessagingPort |
16 | __cxa_pure_virtual | __cxa_pure_virtual |
20 | __cxa_pure_virtual | __cxa_pure_virtual |
24 | __cxa_pure_virtual | __cxa_pure_virtual |
28 | __cxa_pure_virtual | __cxa_pure_virtual |
32 | | AbstractMessagingPort::getClientId |
[+] affected symbols (5)
AbstractMessagingPort::remote ( ) constThis method is from 'AbstractMessagingPort' class.
AbstractMessagingPort::remotePort ( ) constThis method is from 'AbstractMessagingPort' class.
AbstractMessagingPort::reply ( Message& received, Message& response )This method is from 'AbstractMessagingPort' class.
AbstractMessagingPort::reply ( Message& received, Message& response, MSGID responseTo )This method is from 'AbstractMessagingPort' class.
AbstractMessagingPort::~AbstractMessagingPort [in-charge] ( )This method is from 'AbstractMessagingPort' class.
mutex.h
namespace mongo
[+] class MutexDebugger (1)
| Change |
Effect |
1 | Size of this class has been changed from 40 bytes to 72 bytes. | 1) The class has only inline or auto-generated constructors which will be copied to applications at compile time and will allocate an older memory layout. Call of any exported method of this class may access a memory outside the allocated objects or inside the older memory structure and result in crash or incorrect behavior of applications. 2) The memory layout and size of subclasses will be changed. |
[+] affected symbols (2)
mutexDebugger [data]Return value has type 'MutexDebugger'.
MutexDebugger::programEnding ( )This method is from 'MutexDebugger' class.
to the top
Problems with Symbols, High Severity (2)
dbclient.h,
libmongoclient.so
namespace mongo
[+] DBClientWithCommands::createCollection ( std::string const& ns, unsigned int size, bool capped, int max, BSONObj* info ) (1)
changed to:DBClientWithCommands::createCollection ( std::string const& ns, long long size, bool capped, int max, BSONObj* info )
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN5mongo20DBClientWithCommands16createCollectionERKSsjbiPNS_7BSONObjE to _ZN5mongo20DBClientWithCommands16createCollectionERKSsxbiPNS_7BSONObjE. This may cause "undefined reference" linker error in old client applications. |
json.h,
libmongoclient.so
namespace mongo
[+] fromjson ( char const* str ) (1)
changed to:fromjson ( char const* str, int* len )
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN5mongo8fromjsonEPKc to _ZN5mongo8fromjsonEPKcPi. This may cause "undefined reference" linker error in old client applications. |
to the top
Problems with Data Types, Low Severity (4)
bsonobjbuilder.h
namespace mongo
[+] class BSONObjBuilder (1)
| Change |
Effect |
1 | Field _doneCalled has been added to this type. | Size of the inclusive type has been changed. NOTE: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications. |
[+] affected symbols (7)
BSONObjBuilder::appendAsNumber ( std::string const& fieldName, std::string const& data )This method is from 'BSONObjBuilder' class.
BSONObjBuilder::appendKeys ( BSONObj const& keyPattern, BSONObj const& values )This method is from 'BSONObjBuilder' class.
BSONObjBuilder::appendMaxForType ( std::string const& field, int type )This method is from 'BSONObjBuilder' class.
BSONObjBuilder::appendMinForType ( std::string const& field, int type )This method is from 'BSONObjBuilder' class.
dotted2nested ( BSONObjBuilder& b, BSONObj const& obj )1st parameter 'b' (reference) has base type 'BSONObjBuilder'.
LastError::appendSelf ( BSONObjBuilder& b )1st parameter 'b' (reference) has base type 'BSONObjBuilder'.
nested2dotted ( BSONObjBuilder& b, BSONObj const& obj, std::string const& base )1st parameter 'b' (reference) has base type 'BSONObjBuilder'.
mutex.h
namespace mongo
[+] class MutexDebugger (3)
| Change |
Effect |
1 | Field a has been added to this type. | Size of the inclusive type has been changed. NOTE: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications. |
2 | Field b has been added to this type. | Size of the inclusive type has been changed. NOTE: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications. |
3 | Field maxNest has been added to this type. | Size of the inclusive type has been changed. NOTE: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications. |
[+] affected symbols (2)
mutexDebugger [data]Return value has type 'MutexDebugger'.
MutexDebugger::programEnding ( )This method is from 'MutexDebugger' class.
to the top
Other Changes in Data Types (1)
pch.h
namespace mongo
[+] enum ExitCode (1)
| Change |
Effect |
1 | The member EXIT_NET_ERROR with value 48 has been added. | No effect. |
[+] affected symbols (3)
dbexit ( ExitCode returnCode, char const* whyMsg )1st parameter 'returnCode' has type 'ExitCode'.
Logstream::operator<< ( ExitCode x )1st parameter 'x' has type 'ExitCode'.
Nullstream::operator<< ( ExitCode p1 )1st parameter 'p1' has type 'ExitCode'.
to the top
Header Files (1)
dbclient.h
to the top
Shared Libraries (1)
libmongoclient.so
to the top