ExpHP / rsp2

phonons in rust
Apache License 2.0
2 stars 1 forks source link

crash: "every index should have been accounted for" #104

Closed colin-daniels closed 4 years ago

colin-daniels commented 4 years ago

Version: rustc 1.38.0 (625451e37 2019-09-23) Commit: e9cc9bb8ef51865fb5a13367b9639b55d2f66685

Output:

[ 231.563s][TRACE] Done computing forces at displacements
[ 231.563s][TRACE] Computing sparse force constants
[ 231.849s][TRACE] Computing sparse dynamical matrix
[ 231.954s][TRACE] Done computing dynamical matrix
[ 232.300s][TRACE] nnz: 3182 out of 49284 blocks (matrix density: 6.456e-2)
[ 232.300s][TRACE] Diagonalizing dynamical matrix
[ 232.300s][TRACE] Computing all eigensolutions.
[ 232.411s][TRACE] Done diagonalizing dynamical matrix
[ 232.411s][TRACE] ============================
[ 232.411s][TRACE] Finished diagonalization
[ 232.536s][TRACE] Examining mode 1 (-0.0016660) (ddot = 0.275376)...
[ 232.536s][ WARN] Could not classify mode at frequency -0.001665983492737618 (fdot = 0.275376)!
[ 232.607s][TRACE] Examining mode 2 (-0.0005695) (ddot = -0.394657)...
[ 232.607s][ WARN] Could not classify mode at frequency -0.0005695030047404525 (fdot = -0.394657)!
thread 'main' panicked at 'bug! every index should have been accounted for', src/libcore/option.rs:1166:5

Notes

Pretty hard for me to repro this, first I had about 15 runs fail out of ~11k, then when I re-ran them from snapshot.structure/POSCAR I had 3 left that still kept failing. Re-running them from the initial structure seemed to fix it for the rest though.

Files/Info

Since it was hard for me to reproduce, I've attached a core file (plus the executable for symbols) in case that's easier to deal with.

Backtrace

``` #0 core::option::expect_failed () at src/libcore/option.rs:1166 #1 0x0000562efa4f3828 in core::option::Option::expect (self=..., msg=...) at /rustc/625451e376bb2e5283fc4741caa0a3e8a2ca4d54/src/libcore/option.rs:345 #2 0x0000562efa56b008 in rsp2_tasks::cmd::acoustic_search::perform_acoustic_search::{{closure}} (opt=...) at src/tasks/cmd/acoustic_search.rs:223 #3 0x0000562efa51da9c in as core::iter::traits::iterator::Iterator>::fold::{{closure}} (acc=(), elt=...) at /rustc/625451e376bb2e5283fc4741caa0a3e8a2ca4d54/src/libcore/iter/adapters/mod.rs:622 #4 0x0000562efa6410b7 in core::iter::traits::iterator::Iterator::fold::{{closure}} (acc=(), x=...) at /rustc/625451e376bb2e5283fc4741caa0a3e8a2ca4d54/src/libcore/iter/traits/iterator.rs:1783 #5 0x0000562efa22e47a in core::iter::traits::iterator::Iterator::try_fold (self=0x7ffc99713410, init=(), f=...) at /rustc/625451e376bb2e5283fc4741caa0a3e8a2ca4d54/src/libcore/iter/traits/iterator.rs:1671 #6 0x0000562efa228d57 in core::iter::traits::iterator::Iterator::fold (self=..., init=(), f=...) at /rustc/625451e376bb2e5283fc4741caa0a3e8a2ca4d54/src/libcore/iter/traits/iterator.rs:1783 #7 0x0000562efa519401 in as core::iter::traits::iterator::Iterator>::fold (self=..., init=(), g=...) at /rustc/625451e376bb2e5283fc4741caa0a3e8a2ca4d54/src/libcore/iter/adapters/mod.rs:622 #8 0x0000562efa50efc1 in core::iter::traits::iterator::Iterator::for_each (self=..., f=...) at /rustc/625451e376bb2e5283fc4741caa0a3e8a2ca4d54/src/libcore/iter/traits/iterator.rs:602 #9 0x0000562efa264601 in as alloc::vec::SpecExtend>::spec_extend (self=0x7ffc99713768, iterator=...) at /rustc/625451e376bb2e5283fc4741caa0a3e8a2ca4d54/src/liballoc/vec.rs:1961 #10 0x0000562efa29026c in as alloc::vec::SpecExtend>::from_iter (iterator=...) at /rustc/625451e376bb2e5283fc4741caa0a3e8a2ca4d54/src/liballoc/vec.rs:1944 #11 0x0000562efa2a5257 in as core::iter::traits::collect::FromIterator>::from_iter (iter=...) at /rustc/625451e376bb2e5283fc4741caa0a3e8a2ca4d54/src/liballoc/vec.rs:1831 #12 0x0000562efa50b1b9 in core::iter::traits::iterator::Iterator::collect (self=...) at /rustc/625451e376bb2e5283fc4741caa0a3e8a2ca4d54/src/libcore/iter/traits/iterator.rs:1464 #13 0x0000562efa5e95b7 in rsp2_tasks::cmd::acoustic_search::perform_acoustic_search (pot=..., frequencies=..., eigenvectors=0x7ffc99716420, coords=0x7ffc99716a30, meta=..., settings=0x7ffc9971af60) at src/tasks/cmd/acoustic_search.rs:222 #14 0x0000562efa2fac20 in rsp2_tasks::cmd::relaxation::::do_ev_loop_stuff_after_diagonalization ( self=0x7ffc9971ba50, settings=0x7ffc9971af18, pot=..., meta=..., iteration=..., coords=..., freqs=0x7ffc99716408, evecs=0x7ffc99716420) at src/tasks/cmd/relaxation.rs:162 #15 0x0000562efa2f92a2 in rsp2_tasks::cmd::relaxation::::do_main_ev_loop (self=0x7ffc9971ba50, settings=0x7ffc9971af18, pot=..., original_coords=..., meta=..., stop_after_dynmat=false) at src/tasks/cmd/relaxation.rs:90 #16 0x0000562efa2fdba6 in rsp2_tasks::cmd::::run_relax_with_eigenvectors (self=..., on_demand=..., settings=0x7ffc9971af18, file_format=rsp2_tasks::cmd::StructureFileType::Poscar, input=0x7ffc9971abb0, stop_after_dynmat=false) at src/tasks/cmd/mod.rs:165 #17 0x0000562efa2dd7d8 in rsp2_tasks::entry_points::_rsp2_acgsd::{{closure}} (logfile=..., mpi_on_demand=...) at src/tasks/entry_points.rs:354 #18 0x0000562efa2dba83 in rsp2_tasks::entry_points::wrap_main::{{closure}}::{{closure}} () at src/tasks/entry_points.rs:55 #19 0x0000562efa2dbc25 in rsp2_tasks::entry_points::wrap_main::{{closure}} (on_demand=...) at src/tasks/entry_points.rs:47 #20 0x0000562efa2dbf66 in rsp2_tasks::entry_points::wrap_main_with_lammps_on_demand::{{closure}}::{{closure}} (on_demand=...) at src/tasks/entry_points.rs:103 #21 0x0000562efa425066 in rsp2_lammps_wrap::LammpsOnDemand::install::{{closure}} (on_demand=...) at /home/daniec4/build/rsp2/src/io/lammps/lib.rs:532 #22 0x0000562efa534854 in rsp2_lammps_wrap::low_level::mpi_helper::MpiOnDemand::install::{{closure}} (root=...) at /home/daniec4/build/rsp2/src/io/lammps/low_level/mpi_helper.rs:134 #23 0x0000562efa53458a in rsp2_lammps_wrap::low_level::mpi_helper::with_default_root (continuation=...) at /home/daniec4/build/rsp2/src/io/lammps/low_level/mpi_helper.rs:212 #24 0x0000562efa534702 in rsp2_lammps_wrap::low_level::mpi_helper::MpiOnDemand::install (dispatch=..., func=) at /home/daniec4/build/rsp2/src/io/lammps/low_level/mpi_helper.rs:131 #25 0x0000562efa424fed in rsp2_lammps_wrap::LammpsOnDemand::install (continuation=...) at /home/daniec4/build/rsp2/src/io/lammps/lib.rs:530 #26 0x0000562efa2dbf96 in rsp2_tasks::entry_points::wrap_main_with_lammps_on_demand::{{closure}} () at src/tasks/entry_points.rs:103 #27 0x0000562efa600098 in std::panicking::try::do_call (data=0x7ffc9971c0b0 "p\304q\231\374\177\000") at /rustc/625451e376bb2e5283fc4741caa0a3e8a2ca4d54/src/libstd/panicking.rs:296 #28 0x0000562efb51473a in __rust_maybe_catch_panic () at src/libpanic_unwind/lib.rs:80 #29 0x0000562efa5f80b3 in std::panicking::try (f=...) at /rustc/625451e376bb2e5283fc4741caa0a3e8a2ca4d54/src/libstd/panicking.rs:275 #30 0x0000562efa5d7899 in std::panic::catch_unwind (f=...) at /rustc/625451e376bb2e5283fc4741caa0a3e8a2ca4d54/src/libstd/panic.rs:394 #31 0x0000562efa534a2c in rsp2_lammps_wrap::low_level::mpi_helper::with_mpi_abort_on_unwind::{{closure}} (root=...) at /home/daniec4/build/rsp2/src/io/lammps/low_level/mpi_helper.rs:190 #32 0x0000562efa53468a in rsp2_lammps_wrap::low_level::mpi_helper::with_default_root (continuation=...) at /home/daniec4/build/rsp2/src/io/lammps/low_level/mpi_helper.rs:212 #33 0x0000562efa5349f6 in rsp2_lammps_wrap::low_level::mpi_helper::with_mpi_abort_on_unwind (func=...) at /home/daniec4/build/rsp2/src/io/lammps/low_level/mpi_helper.rs:189 #34 0x0000562efa424f86 in rsp2_lammps_wrap::LammpsOnDemand::with_mpi_abort_on_unwind (func=...) at /home/daniec4/build/rsp2/src/io/lammps/lib.rs:541 #35 0x0000562efa2dbd85 in rsp2_tasks::entry_points::wrap_main_with_lammps_on_demand (continuation=...) at src/tasks/entry_points.rs:102 #36 0x0000562efa2db3cf in rsp2_tasks::entry_points::wrap_main (version=..., main=...) at src/tasks/entry_points.rs:45 #37 0x0000562efa221680 in rsp2_tasks::entry_points::_rsp2_acgsd (stop_after_dynmat=false, bin_name=..., version=...) at src/tasks/entry_points.rs:336 #38 0x0000562efa221626 in rsp2_tasks::entry_points::rsp2 (bin_name=..., version=...) at src/tasks/entry_points.rs:322 #39 0x0000562efa21f51a in rsp2::main () at src/binary-shims/rsp2.rs:4 ```

ExpHP commented 4 years ago

Found it. This occurs when there is a non-translational mode with positive eigenvalue that is less than one of the translational acoustic modes. The search for suspicious modes should iterate up to t_end, not zero_index.