mirror of
https://github.com/facebook/sapling.git
synced 2024-10-10 08:47:12 +03:00
4974d08e92
Summary: I encountered crashes like `memory allocation of 999401 bytes failed` when checking out commits on Windows. I almost cannot checkout anything. Looking at the minidumps, the problem is that indexedlogdatastore tries to copy the slice (copy_from_slice). That's suboptimal, since indexedlog can provide zero-copy slice access for on-disk entries. Use zero-copy APIs instead. Minidump trace: [Inline Frame] hg.real.exe!std::sys::windows::abort_internal() Line 261 Unknown [Inline Frame] hg.real.exe!std::process::abort() Line 1784 Unknown hg.real.exe!std::alloc::rust_oom() Line 330 Unknown hg.real.exe!alloc::alloc::__alloc_error_handler::__rg_oom() Line 397 Unknown hg.real.exe!alloc::alloc::handle_alloc_error() Line 366 Unknown [Inline Frame] hg.real.exe!alloc::raw_vec::RawVec<u8, alloc::alloc::Global>::allocate_in(unsigned __int64 capacity, alloc::raw_vec::AllocInit init, alloc::alloc::Global) Line 193 Unknown [Inline Frame] hg.real.exe!alloc::raw_vec::RawVec<u8, alloc::alloc::Global>::with_capacity_in(unsigned __int64 capacity, alloc::alloc::Global) Line 129 Unknown [Inline Frame] hg.real.exe!alloc::vec::Vec<u8, alloc::alloc::Global>::with_capacity_in(unsigned __int64 capacity, alloc::alloc::Global) Line 498 Unknown [Inline Frame] hg.real.exe!alloc::slice::hack::{{impl}}::to_vec(slice<u8> s, alloc::alloc::Global) Line 207 Unknown [Inline Frame] hg.real.exe!alloc::slice::hack::to_vec(slice<u8> s, alloc::alloc::Global) Line 159 Unknown [Inline Frame] hg.real.exe!alloc::slice::{{impl}}::to_vec_in(slice<u8> self, alloc::alloc::Global) Line 472 Unknown [Inline Frame] hg.real.exe!alloc::slice::{{impl}}::to_vec(slice<u8> self) Line 449 Unknown [Inline Frame] hg.real.exe!minibytes::bytes::{{impl}}::to_owned(slice<u8> self) Line 231 Unknown [Inline Frame] hg.real.exe!minibytes::bytes::AbstractBytes<slice<u8>>::copy_from_slice(slice<u8> data) Line 152 Unknown hg.real.exe!revisionstore::indexedlogdatastore::Entry::from_slice(slice<u8> data) Line 120 Unknown hg.real.exe!revisionstore::indexedlogdatastore::Entry::from_log(revisionstore::indexedlogutil::Store * key) Line 133 Unknown [Inline Frame] hg.real.exe!revisionstore::indexedlogdatastore::{{impl}}::get_missing::{{closure}}(revisionstore::indexedlogdatastore::{{impl}}::get_missing::closure-0 *) Line 359 Unknown [Inline Frame] hg.real.exe!core::ops::function::impls::{{impl}}::call_mut(revisionstore::indexedlogdatastore::{{impl}}::get_missing::closure-0 * * self, revisionstore::types::StoreKey * * args) Line 269 Unknown [Inline Frame] hg.real.exe!core::slice::iter::{{impl}}::find(core::slice::iter::Iter<revisionstore::types::StoreKey> * self, revisionstore::indexedlogdatastore::{{impl}}::get_missing::closure-0 * predicate) Line 251 Unknown [Inline Frame] hg.real.exe!core::iter::adapters::filter::{{impl}}::next(core::iter::adapters::filter::Filter<core::slice::iter::Iter<revisionstore::types::StoreKey>, closure-0> * self) Line 55 Unknown [Inline Frame] hg.real.exe!core::iter::adapters::cloned::{{impl}}::next(core::iter::adapters::cloned::Cloned<core::iter::adapters::filter::Filter<core::slice::iter::Iter<revisionstore::types::StoreKey>, closure-0>> * self) Line 38 Unknown [Inline Frame] hg.real.exe!alloc::vec::Vec<revisionstore::types::StoreKey, alloc::alloc::Global>::extend_desugared(core::iter::adapters::cloned::Cloned<core::iter::adapters::filter::Filter<core::slice::iter::Iter<revisionstore::types::StoreKey>, closure-0>> self) Line 2621 Unknown [Inline Frame] hg.real.exe!alloc::vec::{{impl}}::spec_extend(alloc::vec::Vec<revisionstore::types::StoreKey, alloc::alloc::Global> * self, core::iter::adapters::cloned::Cloned<core::iter::adapters::filter::Filter<core::slice::iter::Iter<revisionstore::types::StoreKey>, closure-0>>) Line 2544 Unknown [Inline Frame] hg.real.exe!alloc::vec::{{impl}}::from_iter(core::iter::adapters::cloned::Cloned<core::iter::adapters::filter::Filter<core::slice::iter::Iter<revisionstore::types::StoreKey>, closure-0>> iterator) Line 2320 Unknown hg.real.exe!alloc::vec::{{impl}}::from_iter<revisionstore::types::StoreKey,core::iter::adapters::cloned::Cloned<core::iter::adapters::filter::Filter<core::slice::iter::Iter<revisionstore::types::StoreKey>, closure-0>>>(core::iter::adapters::cloned::Cloned<core::iter::adapters::filter::Filter<core::slice::iter::Iter<revisionstore::types::StoreKey>, closure-0>> iterator) Line 2346 Unknown [Inline Frame] hg.real.exe!alloc::vec::{{impl}}::from_iter(core::iter::adapters::cloned::Cloned<core::iter::adapters::filter::Filter<core::slice::iter::Iter<revisionstore::types::StoreKey>, closure-0>>) Line 2181 Unknown [Inline Frame] hg.real.exe!core::iter::traits::iterator::Iterator::collect(core::iter::adapters::cloned::Cloned<core::iter::adapters::filter::Filter<core::slice::iter::Iter<revisionstore::types::StoreKey>, closure-0>> self) Line 1670 Unknown hg.real.exe!revisionstore::indexedlogdatastore::{{impl}}::get_missing(revisionstore::indexedlogdatastore::IndexedLogHgIdDataStore * self, slice<revisionstore::types::StoreKey> keys) Line 356 Unknown [Inline Frame] hg.real.exe!revisionstore::localstore::{{impl}}::get_missing(alloc::sync::Arc<HgIdDataStore> * self, slice<revisionstore::types::StoreKey> keys) Line 46 Unknown [Inline Frame] hg.real.exe!revisionstore::unionstore::{{impl}}::get_missing::{{closure}}(revisionstore::unionstore::{{impl}}::get_missing::closure-0 *, core::result::Result<alloc::vec::Vec<revisionstore::types::StoreKey, alloc::alloc::Global>, anyhow::Error> store, alloc::sync::Arc<HgIdDataStore> *) Line 37 Unknown [Inline Frame] hg.real.exe!core::iter::traits::iterator::Iterator::fold(core::slice::iter::Iter<alloc::sync::Arc<HgIdDataStore>> self, core::result::Result<alloc::vec::Vec<revisionstore::types::StoreKey, alloc::alloc::Global>, anyhow::Error>) Line 2023 Unknown hg.real.exe!revisionstore::unionstore::{{impl}}::get_missing<alloc::sync::Arc<HgIdDataStore>>(revisionstore::unionstore::UnionStore<alloc::sync::Arc<HgIdDataStore>> * self, slice<revisionstore::types::StoreKey> keys) Line 35 Unknown [Inline Frame] hg.real.exe!revisionstore::contentstore::{{impl}}::get_missing::{{closure}}(revisionstore::contentstore::{{impl}}::get_missing::closure-0) Line 200 Unknown [Inline Frame] hg.real.exe!tracing::span::Span::in_scope(revisionstore::contentstore::{{impl}}::get_missing::closure-0 self) Line 800 Unknown hg.real.exe!revisionstore::contentstore::{{impl}}::get_missing(revisionstore::contentstore::ContentStore * self, slice<revisionstore::types::StoreKey> keys) Line 200 Unknown hg.real.exe!revisionstore::contentstore::{{impl}}::prefetch(revisionstore::contentstore::ContentStore * self, slice<revisionstore::types::StoreKey> keys) Line 176 Unknown [Inline Frame] hg.real.exe!revisionstore::datastore::{{impl}}::prefetch(alloc::sync::Arc<revisionstore::contentstore::ContentStore> * self, slice<revisionstore::types::StoreKey> keys) Line 139 Unknown [Inline Frame] hg.real.exe!pyrevisionstore::datastorepyext::{{impl}}::prefetch_py::{{closure}}(pyrevisionstore::datastorepyext::{{impl}}::prefetch_py::closure-1) Line 297 Unknown [Inline Frame] hg.real.exe!cpython::python::Python::allow_threads(cpython::python::Python f, pyrevisionstore::datastorepyext::{{impl}}::prefetch_py::closure-1) Line 249 Unknown hg.real.exe!pyrevisionstore::datastorepyext::{{impl}}::prefetch_py<alloc::sync::Arc<revisionstore::contentstore::ContentStore>>(alloc::sync::Arc<revisionstore::contentstore::ContentStore> * self, cpython::python::Python py, cpython::objects::list::PyList keys) Line 297 Unknown hg.real.exe!pyrevisionstore::{{impl}}::create_instance::init::wrap_instance_method::{{closure}}(pyrevisionstore::{{impl}}::create_instance::init::wrap_instance_method::closure-0) Line 99 Unknown [Inline Frame] hg.real.exe!cpython::function::handle_callback::{{closure}}(cpython::function::handle_callback::closure-0) Line 218 Unknown [Inline Frame] hg.real.exe!std::panicking::try::do_call(unsigned char * data) Line 379 Unknown hg.real.exe!std::panicking::try<mut python27_sys::object::PyObject*,closure-0>(cpython::function::handle_callback::closure-0 f) Line 343 Unknown [Inline Frame] hg.real.exe!std::panic::catch_unwind(cpython::function::handle_callback::closure-0) Line 396 Unknown hg.real.exe!cpython::function::handle_callback<closure-0,cpython::objects::object::PyObject,cpython::function::PyObjectCallbackConverter>(str _location, cpython::function::PyObjectCallbackConverter f, pyrevisionstore::{{impl}}::create_instance::init::wrap_instance_method::closure-0) Line 227 Unknown hg.real.exe!pyrevisionstore::{{impl}}::create_instance::init::wrap_instance_method(python27_sys::object::PyObject * slf, python27_sys::object::PyObject * args, python27_sys::object::PyObject * kwargs) Line 103 Unknown [External Code] [Inline Frame] hg.real.exe!cpython::objectprotocol::ObjectProtocol::call::{{closure}}(cpython::objectprotocol::ObjectProtocol::call::closure-0 args, python27_sys::object::PyObject *) Line 218 Unknown [Inline Frame] hg.real.exe!cpython::objects::tuple::{{impl}}::with_borrowed_ptr(cpython::objects::tuple::PyTuple * self, cpython::python::Python f, cpython::objectprotocol::ObjectProtocol::call::closure-0) Line 177 Unknown [Inline Frame] hg.real.exe!cpython::conversion::{{impl}}::with_borrowed_ptr(cpython::objects::tuple::PyTuple * * f, cpython::python::Python) Line 193 Unknown [Inline Frame] hg.real.exe!cpython::objectprotocol::ObjectProtocol::call(cpython::objects::object::PyObject * self, cpython::python::Python args, cpython::objects::tuple::PyTuple * kwargs, core::option::Option<cpython::objects::dict::PyDict*>) Line 217 Unknown hg.real.exe!pytracing::wrapfunc::__call__(cpython::python::Python args, cpython::objects::tuple::PyTuple * kwargs, core::option::Option<cpython::objects::dict::PyDict*>) Line 319 Unknown hg.real.exe!pytracing::{{impl}}::create_instance::TYPE_OBJECT::wrap_call::{{closure}}(pytracing::{{impl}}::create_instance::TYPE_OBJECT::wrap_call::closure-0) Line 685 Unknown [Inline Frame] hg.real.exe!cpython::function::handle_callback::{{closure}}(cpython::function::handle_callback::closure-0) Line 218 Unknown [Inline Frame] hg.real.exe!std::panicking::try::do_call(unsigned char * data) Line 379 Unknown hg.real.exe!std::panicking::try<mut python27_sys::object::PyObject*,closure-0>(cpython::function::handle_callback::closure-0 f) Line 343 Unknown [Inline Frame] hg.real.exe!std::panic::catch_unwind(cpython::function::handle_callback::closure-0) Line 396 Unknown hg.real.exe!cpython::function::handle_callback<closure-0,cpython::objects::object::PyObject,cpython::function::PyObjectCallbackConverter>(str _location, cpython::function::PyObjectCallbackConverter f, pytracing::{{impl}}::create_instance::TYPE_OBJECT::wrap_call::closure-0) Line 227 Unknown hg.real.exe!pytracing::{{impl}}::create_instance::TYPE_OBJECT::wrap_call(python27_sys::object::PyObject * slf, python27_sys::object::PyObject * args, python27_sys::object::PyObject * kwargs) Line 689 Unknown [External Code] [Inline Frame] hg.real.exe!cpython::objectprotocol::ObjectProtocol::call::{{closure}}(cpython::objectprotocol::ObjectProtocol::call::closure-0 args, python27_sys::object::PyObject *) Line 218 Unknown [Inline Frame] hg.real.exe!cpython::objects::tuple::{{impl}}::with_borrowed_ptr(cpython::objects::tuple::PyTuple * self, cpython::python::Python f, cpython::objectprotocol::ObjectProtocol::call::closure-0) Line 177 Unknown [Inline Frame] hg.real.exe!cpython::conversion::{{impl}}::with_borrowed_ptr(cpython::objects::tuple::PyTuple * * f, cpython::python::Python) Line 193 Unknown [Inline Frame] hg.real.exe!cpython::objectprotocol::ObjectProtocol::call(cpython::objects::object::PyObject * self, cpython::python::Python args, cpython::objects::tuple::PyTuple * kwargs, core::option::Option<cpython::objects::dict::PyDict*>) Line 217 Unknown hg.real.exe!pytracing::wrapfunc::__call__(cpython::python::Python args, cpython::objects::tuple::PyTuple * kwargs, core::option::Option<cpython::objects::dict::PyDict*>) Line 319 Unknown hg.real.exe!pytracing::{{impl}}::create_instance::TYPE_OBJECT::wrap_call::{{closure}}(pytracing::{{impl}}::create_instance::TYPE_OBJECT::wrap_call::closure-0) Line 685 Unknown [Inline Frame] hg.real.exe!cpython::function::handle_callback::{{closure}}(cpython::function::handle_callback::closure-0) Line 218 Unknown [Inline Frame] hg.real.exe!std::panicking::try::do_call(unsigned char * data) Line 379 Unknown hg.real.exe!std::panicking::try<mut python27_sys::object::PyObject*,closure-0>(cpython::function::handle_callback::closure-0 f) Line 343 Unknown [Inline Frame] hg.real.exe!std::panic::catch_unwind(cpython::function::handle_callback::closure-0) Line 396 Unknown hg.real.exe!cpython::function::handle_callback<closure-0,cpython::objects::object::PyObject,cpython::function::PyObjectCallbackConverter>(str _location, cpython::function::PyObjectCallbackConverter f, pytracing::{{impl}}::create_instance::TYPE_OBJECT::wrap_call::closure-0) Line 227 Unknown hg.real.exe!pytracing::{{impl}}::create_instance::TYPE_OBJECT::wrap_call(python27_sys::object::PyObject * slf, python27_sys::object::PyObject * args, python27_sys::object::PyObject * kwargs) Line 689 Unknown [External Code] [Inline Frame] hg.real.exe!cpython::objectprotocol::ObjectProtocol::call::{{closure}}(cpython::objectprotocol::ObjectProtocol::call::closure-0 args, python27_sys::object::PyObject *) Line 218 Unknown [Inline Frame] hg.real.exe!cpython::objects::tuple::{{impl}}::with_borrowed_ptr(cpython::objects::tuple::PyTuple * self, cpython::python::Python f, cpython::objectprotocol::ObjectProtocol::call::closure-0) Line 177 Unknown [Inline Frame] hg.real.exe!cpython::conversion::{{impl}}::with_borrowed_ptr(cpython::objects::tuple::PyTuple * * f, cpython::python::Python) Line 193 Unknown [Inline Frame] hg.real.exe!cpython::objectprotocol::ObjectProtocol::call(cpython::objects::object::PyObject * self, cpython::python::Python args, cpython::objects::tuple::PyTuple * kwargs, core::option::Option<cpython::objects::dict::PyDict*>) Line 217 Unknown hg.real.exe!pytracing::wrapfunc::__call__(cpython::python::Python args, cpython::objects::tuple::PyTuple * kwargs, core::option::Option<cpython::objects::dict::PyDict*>) Line 319 Unknown hg.real.exe!pytracing::{{impl}}::create_instance::TYPE_OBJECT::wrap_call::{{closure}}(pytracing::{{impl}}::create_instance::TYPE_OBJECT::wrap_call::closure-0) Line 685 Unknown [Inline Frame] hg.real.exe!cpython::function::handle_callback::{{closure}}(cpython::function::handle_callback::closure-0) Line 218 Unknown [Inline Frame] hg.real.exe!std::panicking::try::do_call(unsigned char * data) Line 379 Unknown hg.real.exe!std::panicking::try<mut python27_sys::object::PyObject*,closure-0>(cpython::function::handle_callback::closure-0 f) Line 343 Unknown [Inline Frame] hg.real.exe!std::panic::catch_unwind(cpython::function::handle_callback::closure-0) Line 396 Unknown hg.real.exe!cpython::function::handle_callback<closure-0,cpython::objects::object::PyObject,cpython::function::PyObjectCallbackConverter>(str _location, cpython::function::PyObjectCallbackConverter f, pytracing::{{impl}}::create_instance::TYPE_OBJECT::wrap_call::closure-0) Line 227 Unknown hg.real.exe!pytracing::{{impl}}::create_instance::TYPE_OBJECT::wrap_call(python27_sys::object::PyObject * slf, python27_sys::object::PyObject * args, python27_sys::object::PyObject * kwargs) Line 689 Unknown [External Code] [Inline Frame] hg.real.exe!cpython::objectprotocol::ObjectProtocol::call::{{closure}}(cpython::objectprotocol::ObjectProtocol::call::closure-0 args, python27_sys::object::PyObject *) Line 218 Unknown [Inline Frame] hg.real.exe!cpython::objects::tuple::{{impl}}::with_borrowed_ptr(cpython::objects::tuple::PyTuple * self, cpython::python::Python f, cpython::objectprotocol::ObjectProtocol::call::closure-0) Line 177 Unknown [Inline Frame] hg.real.exe!cpython::conversion::{{impl}}::with_borrowed_ptr(cpython::objects::tuple::PyTuple * * f, cpython::python::Python) Line 193 Unknown [Inline Frame] hg.real.exe!cpython::objectprotocol::ObjectProtocol::call(cpython::objects::object::PyObject * self, cpython::python::Python args, cpython::objects::tuple::PyTuple * kwargs, core::option::Option<cpython::objects::dict::PyDict*>) Line 217 Unknown hg.real.exe!pytracing::wrapfunc::__call__(cpython::python::Python args, cpython::objects::tuple::PyTuple * kwargs, core::option::Option<cpython::objects::dict::PyDict*>) Line 319 Unknown hg.real.exe!pytracing::{{impl}}::create_instance::TYPE_OBJECT::wrap_call::{{closure}}(pytracing::{{impl}}::create_instance::TYPE_OBJECT::wrap_call::closure-0) Line 685 Unknown [Inline Frame] hg.real.exe!cpython::function::handle_callback::{{closure}}(cpython::function::handle_callback::closure-0) Line 218 Unknown [Inline Frame] hg.real.exe!std::panicking::try::do_call(unsigned char * data) Line 379 Unknown hg.real.exe!std::panicking::try<mut python27_sys::object::PyObject*,closure-0>(cpython::function::handle_callback::closure-0 f) Line 343 Unknown [Inline Frame] hg.real.exe!std::panic::catch_unwind(cpython::function::handle_callback::closure-0) Line 396 Unknown hg.real.exe!cpython::function::handle_callback<closure-0,cpython::objects::object::PyObject,cpython::function::PyObjectCallbackConverter>(str _location, cpython::function::PyObjectCallbackConverter f, pytracing::{{impl}}::create_instance::TYPE_OBJECT::wrap_call::closure-0) Line 227 Unknown hg.real.exe!pytracing::{{impl}}::create_instance::TYPE_OBJECT::wrap_call(python27_sys::object::PyObject * slf, python27_sys::object::PyObject * args, python27_sys::object::PyObject * kwargs) Line 689 Unknown [External Code] [Inline Frame] hg.real.exe!cpython::objectprotocol::ObjectProtocol::call::{{closure}}(cpython::objectprotocol::ObjectProtocol::call::closure-0 args, python27_sys::object::PyObject *) Line 218 Unknown [Inline Frame] hg.real.exe!cpython::objects::tuple::{{impl}}::with_borrowed_ptr(cpython::objects::tuple::PyTuple * self, cpython::python::Python f, cpython::objectprotocol::ObjectProtocol::call::closure-0) Line 177 Unknown [Inline Frame] hg.real.exe!cpython::objectprotocol::ObjectProtocol::call(cpython::objects::object::PyObject * self, cpython::python::Python args, cpython::objects::tuple::PyTuple kwargs, core::option::Option<cpython::objects::dict::PyDict*>) Line 217 Unknown hg.real.exe!cpython::objects::module::PyModule::call<cpython::objects::tuple::PyTuple>(cpython::python::Python self, str name, cpython::objects::tuple::PyTuple args, core::option::Option<cpython::objects::dict::PyDict*> kwargs) Line 136 Unknown [Inline Frame] hg.real.exe!hgcommands::hgpython::HgPython::run_hg_py(cpython::python::Python self, alloc::vec::Vec<alloc::string::String, alloc::alloc::Global> py, io::IO * args) Line 98 Unknown hg.real.exe!hgcommands::hgpython::HgPython::run_hg(alloc::vec::Vec<alloc::string::String, alloc::alloc::Global> self, io::IO * args) Line 106 Unknown hg.real.exe!hgcommands::run::run_command(alloc::vec::Vec<alloc::string::String, alloc::alloc::Global> args, io::IO * io) Line 148 Unknown hg.real.exe!hgmain::main() Line 82 Unknown [Inline Frame] hg.real.exe!core::ops::function::FnOnce::call_once(void(*)()) Line 227 Unknown hg.real.exe!std::sys_common::backtrace::__rust_begin_short_backtrace<fn(),tuple<>>(void(*)() f) Line 125 Unknown hg.real.exe!std::rt::lang_start::{{closure}}<tuple<>>(std::rt::lang_start::closure-0 *) Line 66 Unknown [Inline Frame] hg.real.exe!core::ops::function::impls::{{impl}}::call_once() Line 280 Unknown [Inline Frame] hg.real.exe!std::panicking::try::do_call() Line 379 Unknown [Inline Frame] hg.real.exe!std::panicking::try() Line 343 Unknown [Inline Frame] hg.real.exe!std::panic::catch_unwind() Line 396 Unknown hg.real.exe!std::rt::lang_start_internal() Line 51 Unknown Reviewed By: kulshrax Differential Revision: D27724330 fbshipit-source-id: 2a016ddb76607c5f636b834dbac6e7d4443d8f40 |
||
---|---|---|
.. | ||
contrib | ||
distutils_rust | ||
doc | ||
edenscm | ||
edenscmnative | ||
exec | ||
hgcache_size_logger | ||
i18n | ||
lib | ||
newdoc | ||
pystubs | ||
slides | ||
tests | ||
.editorconfig | ||
.flake8 | ||
.gitignore | ||
COPYING | ||
gen_version.py | ||
hgeditor | ||
Makefile | ||
README.rst | ||
setup3.py | ||
setup.py |
Mercurial ========= Mercurial is a fast, easy to use, distributed revision control tool for software developers. Basic install:: $ make # see install targets $ make install # do a system-wide install $ hg debuginstall # sanity-check setup $ hg # see help Running without installing:: $ make local # build for inplace usage $ ./hg --version # should show the latest version See https://mercurial-scm.org/ for detailed installation instructions, platform-specific notes, and Mercurial user information.