Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-19906

verify() failure when text index on "_fts" has weights set to empty object

    • Fully Compatible
    • ALL
    • Hide
      db.foo.drop();
      db.foo.ensureIndex({
          _fts: 'text',
          _ftsx: 1
      }, { weights: {}})
      
      Show
      db.foo.drop(); db.foo.ensureIndex({ _fts: 'text' , _ftsx: 1 }, { weights: {}})
    • Platform A (10/09/15), Platform B (10/30/15)

      Assertion failure _wildcard || _weights.size() src/mongo/db/fts/fts_spec.cpp 13

      Does not cause verify() failure when weights is specified or weights is undefined.

      Backtrace:

        thread #14: tid = 0xbe6e88, 0x00007fff8d39adee libsystem_c.dylib`__sfvwrite + 867
          frame #0: 0x00007fff8d39adee libsystem_c.dylib`__sfvwrite + 867
          frame #1: 0x00007fff8d39b0ab libsystem_c.dylib`fwrite + 142
          frame #2: 0x00007fff8e1b0d2a libc++.1.dylib`std::__1::__stdoutbuf<char>::overflow(int) + 82
          frame #3: 0x00007fff8e1a691d libc++.1.dylib`std::__1::basic_streambuf<char, std::__1::char_traits<char> >::xsputn(char const*, long) + 73
          frame #4: 0x00007fff8e1ad94c libc++.1.dylib`std::__1::basic_ostream<char, std::__1::char_traits<char> >::write(char const*, long) + 72
          frame #5: 0x00000001000503b5 mongod`mongo::operator<<(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, mongo::StringData)(stream=0x00007fff7b99a2f8, value=(_data = "\n\n***aborting after verify() failure as this is a debug/test build\n\n\n", _size = 69)) + 69 at string_data.cpp:57
          frame #6: 0x0000000100fd25f5 mongod`mongo::logger::MessageEventDetailsEncoder::encode(this=0x0000000104927ae0, event=0x000000010a7bf0b0, os=0x00007fff7b99a2f8) + 709 at message_event_utf8_encoder.cpp:77
          frame #7: 0x0000000100716196 mongod`mongo::logger::ConsoleAppender<mongo::logger::MessageEventEphemeral, mongo::Console>::append(this=0x000000010492cd50, event=0x000000010a7bf0b0) + 198 at console_appender.h:53
          frame #8: 0x0000000100fd316e mongod`mongo::logger::LogDomain<mongo::logger::MessageEventEphemeral>::append(this=0x0000000104928238, event=0x000000010a7bf0b0) + 574 at log_domain-impl.h:59
          frame #9: 0x0000000100fcf36f mongod`mongo::logger::LogstreamBuilder::~LogstreamBuilder(this=0x000000010a7bf648) + 1359 at logstream_builder.cpp:126
          frame #10: 0x0000000100fcfd25 mongod`mongo::logger::LogstreamBuilder::~LogstreamBuilder(this=0x000000010a7bf648) + 21 at logstream_builder.cpp:119
          frame #11: 0x0000000101326b10 mongod`mongo::verifyFailed(expr=0x00000001023e67fd, file=0x00000001023e67be, line=131) + 1872 at assert_util.cpp:143
          frame #12: 0x0000000100620c19 mongod`mongo::fts::FTSSpec::FTSSpec(this=0x0000000104930f50, indexInfo=0x0000000104932b48) + 3817 at fts_spec.cpp:131
          frame #13: 0x000000010062166d mongod`mongo::fts::FTSSpec::FTSSpec(this=0x0000000104930f50, indexInfo=0x0000000104932b48) + 29 at fts_spec.cpp:155
          frame #14: 0x00000001006c846a mongod`mongo::FTSAccessMethod::FTSAccessMethod(this=0x0000000104930f30, btreeState=0x000000010492ebc0, btree=0x0000000104930ed0) + 122 at fts_access_method.cpp:35
          frame #15: 0x00000001006c84c5 mongod`mongo::FTSAccessMethod::FTSAccessMethod(this=0x0000000104930f30, btreeState=0x000000010492ebc0, btree=0x0000000104930ed0) + 37 at fts_access_method.cpp:35
          frame #16: 0x0000000100e0c7d4 mongod`mongo::KVDatabaseCatalogEntry::getIndex(this=0x000000010492bb70, txn=0x000000010a7c5318, collection=0x0000000104930960, index=0x000000010492ebc0) + 5300 at kv_database_catalog_entry_get_index.cpp:74
          frame #17: 0x000000010030f97d mongod`mongo::IndexCatalog::_setupInMemoryStructures(this=0x0000000104930ad8, txn=0x000000010a7c5318, descriptor=0x0000000104932b20, initFromDisk=false) + 909 at index_catalog.cpp:167
          frame #18: 0x000000010031692c mongod`mongo::IndexCatalog::IndexBuildBlock::init(this=0x00000001049301c0) + 1116 at index_catalog.cpp:382
          frame #19: 0x0000000100325539 mongod`mongo::MultiIndexBlock::init(this=0x000000010a7c28b0, indexSpecs=0x000000010a7c2c90) + 2617 at index_create.cpp:178
          frame #20: 0x0000000100372984 mongod`mongo::CmdCreateIndex::run(this=0x00000001026ad690, txn=0x000000010a7c5318, dbname=0x000000010a7c32b8, cmdObj=0x000000010a7c32e8, options=0, errmsg=0x000000010a7c32d0, result=0x000000010a7c3400) + 7364 at create_indexes.cpp:213
          frame #21: 0x00000001004a77ce mongod`mongo::Command::run(this=0x00000001026ad690, txn=0x000000010a7c5318, request=0x000000010a7c3fb0, replyBuilder=0x000000010a7c4030) + 2974 at dbcommands.cpp:1336
          frame #22: 0x00000001004a68ab mongod`mongo::Command::execCommand(txn=0x000000010a7c5318, command=0x00000001026ad690, request=0x000000010a7c3fb0, replyBuilder=0x000000010a7c4030) + 3915 at dbcommands.cpp:1260
          frame #23: 0x000000010034e9f8 mongod`mongo::runCommands(txn=0x000000010a7c5318, request=0x000000010a7c3fb0, replyBuilder=0x000000010a7c4030) + 2056 at commands.cpp:495
          frame #24: 0x000000010071bfd9 mongod`mongo::(anonymous namespace)::receivedRpc(txn=0x000000010a7c5318, client=0x000000010492ca50, dbResponse=0x000000010a7c5390, message=0x000000010a7c5b90) + 633 at instance.cpp:290
          frame #25: 0x0000000100718989 mongod`mongo::assembleResponse(txn=0x000000010a7c5318, m=0x000000010a7c5b90, dbresponse=0x000000010a7c5390, remote=0x000000010a7c52f8) + 2441 at instance.cpp:508
          frame #26: 0x00000001000191e3 mongod`mongo::MyMessageHandler::process(this=0x0000000104d11c40, m=0x000000010a7c5b90, port=0x0000000104d15060) + 307 at db.cpp:165
          frame #27: 0x000000010136a827 mongod`mongo::PortMessageServer::handleIncomingMsg(arg=0x0000000104d15060) + 2983 at message_server_port.cpp:229
          frame #28: 0x0000000101368baa mongod`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::__bind<void* (*)(void*), mongo::(anonymous namespace)::MessagingPortWithHandler*> > >(void*) [inlined] decltype(__f=0x0000000104d14470, __args=0x0000000104d14478)(void*)>(fp)(std::__1::forward<mongo::(anonymous namespace)::MessagingPortWithHandler*&>(fp0))) std::__1::__invoke<void* (*&)(void*), mongo::(anonymous namespace)::MessagingPortWithHandler*&>(void* (*&&&)(void*), mongo::(anonymous namespace)::MessagingPortWithHandler*&&&) + 24 at __functional_base:413
          frame #29: 0x0000000101368b92 mongod`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::__bind<void* (*)(void*), mongo::(anonymous namespace)::MessagingPortWithHandler*> > >(void*) [inlined] std::__1::__bind_return<void* (*)(void*), std::__1::tuple<mongo::(anonymous namespace)::MessagingPortWithHandler*>, std::__1::tuple<>, _is_valid_bind_return<void* (*)(void*), std::__1::tuple<mongo::(anonymous namespace)::MessagingPortWithHandler*>, std::__1::tuple<> >::value>::type std::__1::__apply_functor<void* (__f=0x0000000104d14470, __bound_args=0x0000000104d14478, (null)=__tuple_indices<0> at 0x000000010a7c5ea0, __args=0x000000010a7c5e60)(void*), std::__1::tuple<mongo::(anonymous namespace)::MessagingPortWithHandler*>, 0ul, std::__1::tuple<> >(void* (*&)(void*), std::__1::tuple<mongo::(anonymous namespace)::MessagingPortWithHandler*>&, std::__1::__tuple_indices<0ul>, std::__1::tuple<>&&) + 40 at functional:2023
          frame #30: 0x0000000101368b6a mongod`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::__bind<void* (*)(void*), mongo::(anonymous namespace)::MessagingPortWithHandler*> > >(void*) [inlined] std::__1::__bind_return<void* (*)(void*), std::__1::tuple<mongo::(anonymous namespace)::MessagingPortWithHandler*>, std::__1::tuple<>, _is_valid_bind_return<void* (*)(void*), std::__1::tuple<mongo::(anonymous namespace)::MessagingPortWithHandler*>, std::__1::tuple<> >::value>::type std::__1::__bind<void* (this=0x0000000104d14470)(void*), mongo::(anonymous namespace)::MessagingPortWithHandler*>::operator()<>() + 38 at functional:2086
          frame #31: 0x0000000101368b44 mongod`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::__bind<void* (*)(void*), mongo::(anonymous namespace)::MessagingPortWithHandler*> > >(void*) [inlined] decltype(__f=0x0000000104d14470)(void*), mongo::(anonymous namespace)::MessagingPortWithHandler*> >(fp)(std::__1::forward<>(fp0))) std::__1::__invoke<std::__1::__bind<void* (*)(void*), mongo::(anonymous namespace)::MessagingPortWithHandler*> >(std::__1::__bind<void* (*)(void*), mongo::(anonymous namespace)::MessagingPortWithHandler*>&&) + 11 at __functional_base:413
          frame #32: 0x0000000101368b39 mongod`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::__bind<void* (*)(void*), mongo::(anonymous namespace)::MessagingPortWithHandler*> > >(void*) [inlined] void std::__1::__thread_execute<std::__1::__bind<void* (*)(void*), mongo::(anonymous namespace)::MessagingPortWithHandler*> >(__t=0x0000000104d14470, (null)=__tuple_indices<> at 0x000000010a7c5e38)(void*), mongo::(anonymous namespace)::MessagingPortWithHandler*> >&, std::__1::__tuple_indices<>) + 25 at thread:332
          frame #33: 0x0000000101368b20 mongod`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::__bind<void* (*)(void*), mongo::(anonymous namespace)::MessagingPortWithHandler*> > >(__vp=0x0000000104d14470) + 368 at thread:342
          frame #34: 0x00007fff9496b268 libsystem_pthread.dylib`_pthread_body + 131
          frame #35: 0x00007fff9496b1e5 libsystem_pthread.dylib`_pthread_start + 176
          frame #36: 0x00007fff9496941d libsystem_pthread.dylib`thread_start + 13
      

            Assignee:
            mark.benvenuto@mongodb.com Mark Benvenuto
            Reporter:
            j.delaney J Delaney
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: