Low Level Tools/Status2018Q4
From MozillaWiki
Contents
- 1 Status updates for the week of 2018/12/24
- 2 Status updates for the week of 2018/12/17
- 3 Status updates for the week of 2018/12/10
- 4 Status updates for the week of 2018/12/03
- 5 Status updates for the week of 2018/11/26
- 6 Status updates for the week of 2018/11/19
- 7 Status updates for the week of 2018/11/12
- 8 Status updates for the week of 2018/11/05
- 9 Status updates for the week of 2018/10/29
- 10 Status updates for the week of 2018/10/22
- 11 Status updates for the week of 2018/10/15
- 12 Status updates for the week of 2018/10/08
- 13 Status updates for the week of 2018/10/01
- 14 Status updates for the week of 2018/09/24
- 15 Status updates for the week of 2018/09/17
- 16 Status updates for the week of 2018/09/10
Status updates for the week of 2018/12/24
Nick
Dec 17--21: Four day week due to PTO.
rustc landings:
Status updates for the week of 2018/12/17
Nick
Dec 10--14
rustc landings:
- Use a `SmallVec` within `_match::Matrix`.
- Remove `tokenstream::Delimited`.
- Overhaul `FileSearch` and `SearchPaths`.
- Use a `newtype_index!` within `Symbol`.
Status updates for the week of 2018/12/10
Tom
- While at All Hands, template parameter patch landed.
- Debugged bindgen a bit to try out the "packed" idea
- Regression on Debian stable due to earlier patch; investigating
Nick
Dec 03--07
- Orlando All Hands
Status updates for the week of 2018/12/03
Nick
Nov 26--30
rustc landings:
- (rust-smallvec) Add a new feature, `may_dangle`..
- Clean up and streamline the pretty-printer
- Reuse the `P` in `InvocationCollector::fold_{,opt_}expr`.
Status updates for the week of 2018/11/26
Nick
Nov 19--23
Firefox landings:
rustc landings:
Other:
- More progress on new DMD viewer.
Gabriele
- I triaged November 17th's nightlies, filed bug 1508212 - Crash in java.lang.NullPointerException: at android.view.ViewRootImpl.performDraw(ViewRootImpl.java), bug 1508216 - Crash in java.lang.IllegalArgumentException: at org.mozilla.gecko.sync.Utils.throwIfNull(Utils.java), bug 1508221 - Crash in _chkstk | CreateNotificationBlock and added two signatures to bug 1479795 - Crash in igd10iumd64.dll with Intel driver 23.20.16.4973
- I closed a bunch of old bugs to clean up some of my components: bug 1091975 - Android NDK r10c failure building breakpad: error: 'ElfELFSIZE_Addr' does not name a type, bug 1119569 - We should assert/crash if CGROUPS is not enabled in the kernel, bug 1362203 - Crash in AsyncShutdownTimeout | profile-before-change | Crash reporter: blocking on minidump analysis
- I prepared a patch to figure out what executable we're stuck on in bug 1386760
- I prepared a patch to block the Facebook Uploader plugin from loading on Mac in bug 1502977. I regressed this when I refactored the crash annotations
- I wrote a patch to diagnose the timing difference described in bug 1505944 but the results were inconclusive
- I filed and investigated bug 1508215 which is about graphics adapter names showing up in weird ways on Socorro
- I filed bug 1508265 - Re-enable getting minidumps of hung content processes on shutdown, and bug 1509298 - Add tests to ensure that FallbackEncoding picks up locale changes correctly as follow ups to work I did last week and a number of bugs regarding crash reporting issues: bug 1509032 - The pingsender leaves behind zombie processes on Linux, bug 1508267 - Crash reports that have not been submitted are not deleted on Android, bug 1509030 - The X11 widget does not populate the graphics adapter annotations
- I landed a patch to fix bug 1500026 - The FallbackEncoding instance is not listening to the "intl:requested-locales-changed" event
Status updates for the week of 2018/11/19
Nick
Nov 12--16
rustc landings:
- Make `MatcherPos::stack` a `SmallVec`.
- Avoid the Box in `TyCtxt::associated_items`.
- Change `Lit::short_name` to `Lit::literal_name`.
- Move `static_assert!` into librustc_data_structures.
- (ena) Remove `OpenSnapshot` and `CommittedSnapshot` markers.
- Use `Mmap` to open the rmeta file.
- Wrap some query results in `Lrc`.
Other:
- Good progress on new DMD viewer.
Status updates for the week of 2018/11/12
Nick
Nov 05--09
Four day week due to a public holiday.
rustc landings:
- Make `process_obligations`' computation of `completed` optional.
- Use `Lit` rather than `P<Lit>` in `ast::ExprKind`.
- Use `SmallVec` to avoid allocations in `from_decimal_string`.
- Convert `outlives_components`' return value to a `SmallVec` outparam.
Other:
- Blogged about my Rust NLL improvements.
Status updates for the week of 2018/11/05
Nick
Oct 29--Nov 02
rustc landings:
- Avoid unnecessary allocations in `float_lit` and `integer_lit`.
- Use `SmallVec` within `MoveData`.
- Tweak `MatcherPos::matches`.
Other
- Finished first draft of DHAT overhaul. I've been using it on rustc, it's nice!
Status updates for the week of 2018/10/29
Nick
Oct 22--26
rustc landings
- Use `SmallVec` for the queue in `coerce_unsized`.
- Shrink `Statement`.
- Add a "cheap" mode for `compute_missing_ctors`.
Valgrind landings
Other
- Lots more DHAT overhaul progress. (The above rustc improvements were found with it.)
Status updates for the week of 2018/10/22
Nick
Oct 15--19
Firefox landings:
Other:
- Lots more progress on a new data viewer for DHAT. I started using it in earnest on rustc.
Status updates for the week of 2018/10/15
Gabriele
- I triaged October 6th's nightlies and filed bug 1497143 - Crash in java.lang.IllegalStateException: at android.support.v4.app.FragmentManagerImpl.saveAllState(FragmentManager.java), bug 1497145 - Crash in java.lang.OutOfMemoryError: at android.database.CursorWindow.nativeGetString(Native Method), bug 1497148 - Crash in java.lang.IllegalArgumentException: at org.mozilla.gecko.GeckoProfile.<init>(GeckoProfile.java), bug 1497149 with two distinct signatures - Crash in OOM | large | NS_ABORT_OOM | nsTArray_base<T>::EnsureCapacity<T> | mozilla::dom::HTMLMediaElement::DispatchAsyncEvent
- I updated and landed the fix for bug 1390547, now multi-line MozCrashReason annotations are properly handled both in Rust and C++
- I wrote a fix for bug 1497692 which lowers the priority of the minidump-analyzer tool after a crash. The goal is to let the user go back to what it was doing ASAP
- I prepared a patch for bug 1498609 which will tell us which of our users are using ECC memory and which are not. I also prepared a data review request since this is new data we didn't collect before
- I've spent some time gathering information on how to implement crash pings for GeckoView in bug 1483331. I've got a plan almost ready for that
- I've further worked on bug 1435683, integrating the new prototype service with the XPCOM machinery and finishing the script that generates the list of topics
Nick
Oct 08--12
Firefox landings:
rustc-perf landings:
- Clarify the required positions of the `bench_local` options. A minor docs improvement.
Valgrind landings:
Other:
- Blogged about static atoms.
- Lots of progress on a new data viewer for DHAT.
Status updates for the week of 2018/10/08
Gabriele
- I've triaged September 29th's nightlies and filed bug 1495589 - Crash in js::GCMarker::traverse<T> and bug 1495449 - Crash in mozilla::recordreplay::child::ReportFatalError | mozilla::recordreplay::Stream::CheckInput
- I prepared a patch for bug 1390547 which should fix rust panic reports with multi-line messages
- I uplifted the patch for bug 1463048 which fixes a long-standing shutdown crash caused by asynchronous minidump generation
- I closed bug 1485260 because it wasn't a regression, the change in the bug just made our tools finally see all the symbols present in Linux PGO builds
- I fixed bug 1494203, an issue with highlighting a page title in Fennec's awesomebar which I had introduced while fixing bug 1127855
- I uplifted both bug 1127855 and bug 1494203 to beta
- I've finally started working on bug 1435683 having laid out a basic IDL for the new observer service and possibly found a partial solution for dealing with artifact builds
Nick
Oct 01--05
Firefox landings:
- Streamline nsIWebBrowser{,Chrome}.idl. Dead code removal.
- Remove DOMString from XPIDL. A simplification.
- Remove dead code in and around nsFrameLoader methods.
- Improve static atom handling in various places.
- Improve static atom handling in dom/svg/.
- Make static atom pointers `constexpr`. Saves 18KB per process.
rustc-perf landings:
- Change a `cp` command. A step towards making it work on Mac.
Status updates for the week of 2018/10/01
Gabriele
- I've triaged September 22nd's nightlies and filed far too many bugs: bug 1493590 - Crash in mozilla::layers::GPUVideoImage::GetAsSourceSurface, bug 1493591 - Crash in mozilla::dom::WorkerPrivate::~WorkerPrivate, bug 1493593 - Crash in avx::memset32, bug 1493607 - Crash in java.lang.UnsatisfiedLinkError: dlopen failed: library "/data/data/org.mozilla.fennec_aurora/lib/libmozglue.so" not found at java.lang.Runtime.load0(Runtime.java), bug 1493611 Crash in aom_lpf_vertical_4_neon, bug 1493630 Crash in std::panicking::rust_panic_with_hook, bug 1493633 - Crash in mozilla::gfx::PVRGPUChild::SendStartVRService, bug 1493635 - Crash in libhwui.so@0x86de6, I've also added a signature to bug 1461267
- I've added a signature to bug 1127855 and ended up investigating the bug, I ultimately traced it down to the fact that the lowercase version of a string might have a different number of characters than the original mixed-case - at least in some languages. I wrote a patch to fix it but...
- My fix introduced a new one, bug 1494203. I've already prepared a fix but it's still undergoing review.
- I've investigated the shutdown crash in bug 1488091 and I have the feeling that it's related to how we write out preferences during shutdown. Unfortunately it's not easy to be certain and it might not even be our fault.
- While working on my observer refactoring I started getting an assertion when starting my nightly build, I ultimately traced it down to the preferences code using floating-point/string conversions in a locale-dependent way. I fixed the issue by making all the conversions locale-independent.
- I finally landed bug 1490240 which removes all remaining warnings in the first-party crash reporting code and quite a few in mozglue too.
- I've reviewed a patch in bug 1493227, a workaround for a horrible issue with the Oculus Mobile runtime.
Nick
A four day week due to a public holiday.
Firefox landings:
- Some static atom cleanups. Cleanup prep for making static atom pointer
constexpr
.
rustc landings:
- Shrink `StatementKind. Reduced peak memory use by up to 4%.
rustc-perf landings:
Status updates for the week of 2018/09/24
Nick
rustc landings:
- Merge `bitvec.rs` and `indexed_set.rs`. A big clean-up, and prerequisite for...
- Use `HybridBitSet` in `SparseBitMatrix`. Reduced NLL peak memory by 14--45% on four rustc-perf benchmarks, and 96% on one external crate!
- Split `Liveness::users` into three. Reduces non-NLL peak memory by 20% on keccak.
- Compress `Liveness` data some more. Reduces instruction counts on NLL benchmarks by up to 16%, and max-rss by up to 38%.
- Improve handling of type bounds in `bit_set.rs`. A code clean-up.
Gabriele
- I triaged September 15th's nightlies and filed bug 1491761 - Crash in js::CloneRegExpObject
- I reviewed bug 1388134 which lazifies reading application directories in the crash manager
- I've finished and landed the patch for bug 1463048 which strips out asynchronous minidump generation as it proved unstable and hard to fix
- I closed four bugs that had become invalid or were fixed by the removal of the disk space wather: bug 1328321, bug 1206074, bug 876850 and bug 863596
- I've landed bug 1490240 which removes all the remaining warnings from the crash reporter code (and some from mozglue too) when building under Windows with clang-cl, unfortunately the patch was backed out for breaking some mozglue code
- I've filed and fixed bug 1492815 which ensures that Fennec and GeckoView do not send the 'StackTraces' field when submitting a crash report. This field is large and redundant as it's being used only for generating crash pings
- I've investigated some intermittent failures in bug 1376773 which tests crash detection in marionette but couldn't fix the issue yet
- I landed a fix for bug 1470223 which will improve the quality of the stack-traces printed out in the logs for try runs
- I've prepared a fix for bug 1493365 which was a gtest failure triggered by bug 1470223. It was a hard one to figure out because it was indirectly caused by the increase in memory consumption caused by the latter
Status updates for the week of 2018/09/17
Nick
Firefox landings
- Fix a bounds violation crash in the prefs parser. The crash only started showing up in ESR60, oddly enough.
- Handle unaccompanied low surrogate pairs in the prefs parser. Different to bug 1489744, but found while investigating it.
- Streamline nsISHistoryListener.
- Streamline nsISHistory.
- Streamline nsISHEntry.
- Handle mPersist in the nsSHEntry copy constructor. Unblocked landing of automated UBSan checking.
- Remove nsISettingsService.idl.
- Remove XPIDL support for `Null` and `Undefined` value-taking properties on `DOMString` parameters and attributes.
rustc landings
- De-overlap the lifetimes of `flow_inits` and `flow_{un,ever_}inits`. Reduced NLL peak memory by 27% for keccak and 8% for inflate.
- Remove bitslice.rs. A clean-up that will facilitate subsequent perf improvements.
Other
- Booked Orlando flights.
- Did my first review as a newly-minted rustc reviewer.
Gabriele
- I’ve reviewed the patch for bug 1430041 which adds support for the socket process to the crash reporting code
Tom
- Pinged nrc about rustup review
- Down the rabbit hole of debugging a failing i586 musl build via travis
- Went to a “rust office hours” to give a gdb lesson; took notes, may write a short tutorial
Status updates for the week of 2018/09/10
Tom
- Another round on DWARF enum patch; r+ but now crashing on x86 musl
- Fix gdb crash in corner case with empty enum; landed
- Figured out why rustup-installed lldb crashes on macOS; sent PR
Gabriele
- I’ve ripped out quite a bit of old unused code
- I’ve cleared all the compiler warnings in the crash reporter code
- I’ve been trying to improve our stack traces fixup script but I haven’t figured out how to unit-test it yet
- I’ve taught mach how to automatically install the latest JDK when bootstrapping Fennec on Gentoo