<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Engineering Record And Replay For Deployability: Extended Technical Report · HackerPapers discussions</title><link>https://hackerpaper.kaipfister.de/p/1705.05937/</link><description>Collected HN comments and submissions linking this paper.</description><language>en</language><lastBuildDate>Mon, 02 Nov 2026 11:16:22 GMT</lastBuildDate><atom:link href="https://hackerpaper.kaipfister.de/p/1705.05937/feed.xml" rel="self" type="application/rss+xml" /><item><title>Engineering Record And Replay For Deployability: Extended Technical Report — mentioned by alehander42</title><link>https://news.ycombinator.com/item?id=43282579</link><guid isPermaLink="false">urn:hackerpapers:mention:1705.05937:43282579</guid><pubDate>Thu, 06 Mar 2025 17:12:28 GMT</pubDate><description>&lt;p&gt;We are currently working on two &amp;quot;backends&amp;quot; where recording works in different ways. For the scripting languages and smart contract/ZK languages, we instrument the interpreters using high level hooking API-s or direct patches, and we produce a trace. For system languages, we directly build on top of RR[1] recordings for now: RR can record multiple processes, and it works in userland. IIRC it doesn&amp;#x27;t support modifications of shared memory outside of the recording. It&amp;#x27;s very well documented in their paper: Engineering Record And Replay For Deployability: Extended Technical Report[2]. 1…&lt;/p&gt;&lt;p&gt;&lt;a href="https://hackerpaper.kaipfister.de/p/1705.05937/"&gt;Paper and discussion history&lt;/a&gt;. A mention is not an endorsement.&lt;/p&gt;</description><category>cs.PL</category></item><item><title>Engineering Record And Replay For Deployability: Extended Technical Report — mentioned by roca</title><link>https://news.ycombinator.com/item?id=41083187</link><guid isPermaLink="false">urn:hackerpapers:mention:1705.05937:41083187</guid><pubDate>Fri, 26 Jul 2024 23:20:21 GMT</pubDate><description>&lt;p&gt;The two approaches are completely different. gdb singlesteps the program and, before each instruction, records the state of registers and memory that will be changed by that instruction --- an undo log. Then you can reverse-execute an instruction by restoring the state from the undo log. This is incredibly slow because singlestepping requires a full context switch for each instruction executed. rr, on the other hand, intercepts all system calls and other sources of nondeterminism but regular CPU instructions execute normally with no overhead. The details about rr are here…&lt;/p&gt;&lt;p&gt;&lt;a href="https://hackerpaper.kaipfister.de/p/1705.05937/"&gt;Paper and discussion history&lt;/a&gt;. A mention is not an endorsement.&lt;/p&gt;</description><category>cs.PL</category></item><item><title>Engineering Record And Replay For Deployability: Extended Technical Report — mentioned by khuey</title><link>https://news.ycombinator.com/item?id=41030677</link><guid isPermaLink="false">urn:hackerpapers:mention:1705.05937:41030677</guid><pubDate>Mon, 22 Jul 2024 03:29:38 GMT</pubDate><description>&lt;p&gt;https://arxiv.org/abs/1705.05937&lt;/p&gt;&lt;p&gt;&lt;a href="https://hackerpaper.kaipfister.de/p/1705.05937/"&gt;Paper and discussion history&lt;/a&gt;. A mention is not an endorsement.&lt;/p&gt;</description><category>cs.PL</category></item><item><title>Engineering Record And Replay For Deployability: Extended Technical Report — mentioned by bqmjjx0kac</title><link>https://news.ycombinator.com/item?id=41025372</link><guid isPermaLink="false">urn:hackerpapers:mention:1705.05937:41025372</guid><pubDate>Sun, 21 Jul 2024 14:32:09 GMT</pubDate><description>&lt;p&gt;Yeah, the reason it only works for these coarser race conditions is that RR only has one thread executing at a time. Chaos mode randomizes the durations of time allotted to each thread before it is preempted. This may be out of date. I believe I read it in the Extended Technical Report from 2017: https://arxiv.org/pdf/1705.05937&lt;/p&gt;&lt;p&gt;&lt;a href="https://hackerpaper.kaipfister.de/p/1705.05937/"&gt;Paper and discussion history&lt;/a&gt;. A mention is not an endorsement.&lt;/p&gt;</description><category>cs.PL</category></item><item><title>Engineering Record And Replay For Deployability: Extended Technical Report — mentioned by sfink</title><link>https://news.ycombinator.com/item?id=31622991</link><guid isPermaLink="false">urn:hackerpapers:mention:1705.05937:31622991</guid><pubDate>Sat, 04 Jun 2022 17:28:37 GMT</pubDate><description>&lt;p&gt;No, that has been done but is much slower. It records all communication with the external world. The full answer is well described in https://arxiv.org/pdf/1705.05937.pdf which I&amp;#x27;ll quote here: &amp;gt; We identify a boundary around state and computation, record all sources of nondeterminism within the boundary and all inputs crossing into the boundary, and reexecute the computation within the boundary by replaying the nondeterminism and inputs. If all inputs and nondeterminism have truly been captured, the state and computation within the boundary during replay will match that during recording. So…&lt;/p&gt;&lt;p&gt;&lt;a href="https://hackerpaper.kaipfister.de/p/1705.05937/"&gt;Paper and discussion history&lt;/a&gt;. A mention is not an endorsement.&lt;/p&gt;</description><category>cs.PL</category></item><item><title>Engineering Record And Replay For Deployability: Extended Technical Report — HN submission</title><link>https://news.ycombinator.com/item?id=23564906</link><guid isPermaLink="false">urn:hackerpapers:submission:1705.05937:23564906</guid><pubDate>Thu, 18 Jun 2020 16:43:50 GMT</pubDate><description>&lt;p&gt;Engineering Record and Replay(rr) for Deployability Extended Technical Report&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;3 points; 0 discussion replies on HN. &lt;a href="https://hackerpaper.kaipfister.de/p/1705.05937/"&gt;Paper and source history&lt;/a&gt;. A submission is not an endorsement.&lt;/p&gt;</description><category>cs.PL</category></item><item><title>Engineering Record And Replay For Deployability: Extended Technical Report — mentioned by roca</title><link>https://news.ycombinator.com/item?id=23076703</link><guid isPermaLink="false">urn:hackerpapers:mention:1705.05937:23076703</guid><pubDate>Tue, 05 May 2020 05:04:20 GMT</pubDate><description>&lt;p&gt;Some small-ish items: -- Virtualization of rr&amp;#x27;s required PMU features on Azure and GCP -- Virtualization of Intel&amp;#x27;s CPUID faulting on AWS and other cloud providers (Linux KVM has it, but it&amp;#x27;s not enabled in AWS) -- Fix the reliability bug(s) in the retired-conditional-branches counter on AMD Ryzen so rr works there -- Implement CPUID faulting in AMD Ryzen -- Reliable instructions-retired counter on AMD/Intel (for more reliable/simpler operation) -- Trap on LL/SC failures on ARM (AArch64 I guess) and other archs (so we can port rr there), with Linux kernel APIs to expose that to userspace…&lt;/p&gt;&lt;p&gt;&lt;a href="https://hackerpaper.kaipfister.de/p/1705.05937/"&gt;Paper and discussion history&lt;/a&gt;. A mention is not an endorsement.&lt;/p&gt;</description><category>cs.PL</category></item><item><title>Engineering Record And Replay For Deployability: Extended Technical Report — mentioned by garaetjjte</title><link>https://news.ycombinator.com/item?id=21648518</link><guid isPermaLink="false">urn:hackerpapers:mention:1705.05937:21648518</guid><pubDate>Wed, 27 Nov 2019 15:16:59 GMT</pubDate><description>&lt;p&gt;By capturing all external inputs to application, it can replay it many times and results will be always identical. https://arxiv.org/pdf/1705.05937&lt;/p&gt;&lt;p&gt;&lt;a href="https://hackerpaper.kaipfister.de/p/1705.05937/"&gt;Paper and discussion history&lt;/a&gt;. A mention is not an endorsement.&lt;/p&gt;</description><category>cs.PL</category></item><item><title>Engineering Record And Replay For Deployability: Extended Technical Report — mentioned by roca</title><link>https://news.ycombinator.com/item?id=18391766</link><guid isPermaLink="false">urn:hackerpapers:mention:1705.05937:18391766</guid><pubDate>Tue, 06 Nov 2018 15:21:55 GMT</pubDate><description>&lt;p&gt;You should read https://arxiv.org/abs/1705.05937 so you don&amp;#x27;t need to speculate. rr absolutely does guarantee that threads are scheduled the same way during replay as during recording, otherwise it wouldn&amp;#x27;t work at all on applications like Firefox which use a lot of threads. Also, rr definitely is very useful for debugging race conditions. For example Mozilla developers have debugged lots of race conditions using it. One thing that really helps is rr&amp;#x27;s &amp;quot;chaos mode&amp;quot;, which randomizes thread scheduling in an intelligent way to discover possible races. See…&lt;/p&gt;&lt;p&gt;&lt;a href="https://hackerpaper.kaipfister.de/p/1705.05937/"&gt;Paper and discussion history&lt;/a&gt;. A mention is not an endorsement.&lt;/p&gt;</description><category>cs.PL</category></item><item><title>Engineering Record And Replay For Deployability: Extended Technical Report — mentioned by scott_s</title><link>https://news.ycombinator.com/item?id=18391687</link><guid isPermaLink="false">urn:hackerpapers:mention:1705.05937:18391687</guid><pubDate>Tue, 06 Nov 2018 15:13:48 GMT</pubDate><description>&lt;p&gt;Being slower is not, I think, the major downside. It is that an entire class of errors - race conditions - are basically outside of the scope of the tool. Which is understandable! Race conditions are hard, and when I read about the tool, my first thought was &amp;quot;How are they handling race conditions?&amp;quot; and it turns out, essentially, they&amp;#x27;re not. But race conditions are also the hardest part about debugging multithreaded applications. I&amp;#x27;m not sure if the tool ensures deterministic scheduling of threads on the single core, but I doubt that it does. If it does not, then playbacks will not be…&lt;/p&gt;&lt;p&gt;&lt;a href="https://hackerpaper.kaipfister.de/p/1705.05937/"&gt;Paper and discussion history&lt;/a&gt;. A mention is not an endorsement.&lt;/p&gt;</description><category>cs.PL</category></item><item><title>Engineering Record And Replay For Deployability: Extended Technical Report — mentioned by pm215</title><link>https://news.ycombinator.com/item?id=18391117</link><guid isPermaLink="false">urn:hackerpapers:mention:1705.05937:18391117</guid><pubDate>Tue, 06 Nov 2018 14:15:51 GMT</pubDate><description>&lt;p&gt;rr has an &amp;quot;extended technical report&amp;quot; at https://arxiv.org/pdf/1705.05937.pdf which explains the principles it uses. In general they are inherently rather complicated -- in order to get to anything resembling useful speed of execution, you need to play clever tricks of one kind or another to avoid having to record absolutely everything about the process under debug.&lt;/p&gt;&lt;p&gt;&lt;a href="https://hackerpaper.kaipfister.de/p/1705.05937/"&gt;Paper and discussion history&lt;/a&gt;. A mention is not an endorsement.&lt;/p&gt;</description><category>cs.PL</category></item><item><title>Engineering Record And Replay For Deployability: Extended Technical Report — mentioned by roca</title><link>https://news.ycombinator.com/item?id=18391070</link><guid isPermaLink="false">urn:hackerpapers:mention:1705.05937:18391070</guid><pubDate>Tue, 06 Nov 2018 14:11:02 GMT</pubDate><description>&lt;p&gt;The basic idea is the same as ReVirt, but there are a lot of different details because rr has to run as a pure user-space Linux application whereas ReVirt was baked into the hypervisor. For rr to run efficiently we have to use Linux APIs in creative ways. https://arxiv.org/abs/1705.05937 has more details.&lt;/p&gt;&lt;p&gt;&lt;a href="https://hackerpaper.kaipfister.de/p/1705.05937/"&gt;Paper and discussion history&lt;/a&gt;. A mention is not an endorsement.&lt;/p&gt;</description><category>cs.PL</category></item><item><title>Engineering Record And Replay For Deployability: Extended Technical Report — HN submission</title><link>https://news.ycombinator.com/item?id=14371935</link><guid isPermaLink="false">urn:hackerpapers:submission:1705.05937:14371935</guid><pubDate>Thu, 18 May 2017 23:35:45 GMT</pubDate><description>&lt;p&gt;Engineering Record and Replay for Deployability: Extended Technical Report&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;1 point; 0 discussion replies on HN. &lt;a href="https://hackerpaper.kaipfister.de/p/1705.05937/"&gt;Paper and source history&lt;/a&gt;. A submission is not an endorsement.&lt;/p&gt;</description><category>cs.PL</category></item></channel></rss>
