Rebecca Turner
7434caca05
Fix segfault on infinite recursion in some cases
...
This fixes a segfault on infinite function call recursion (rather than
infinite thunk recursion) by tracking the function call depth in
`EvalState`.
Additionally, to avoid printing extremely long stack traces, stack
frames are now deduplicated, with a `(19997 duplicate traces omitted)`
message. This should only really be triggered in infinite recursion
scenarios.
Before:
$ nix-instantiate --eval --expr '(x: x x) (x: x x)'
Segmentation fault: 11
After:
$ nix-instantiate --eval --expr '(x: x x) (x: x x)'
error: stack overflow
at «string»:1:14:
1| (x: x x) (x: x x)
| ^
$ nix-instantiate --eval --expr '(x: x x) (x: x x)' --show-trace
error:
… from call site
at «string»:1:1:
1| (x: x x) (x: x x)
| ^
… while calling anonymous lambda
at «string»:1:2:
1| (x: x x) (x: x x)
| ^
… from call site
at «string»:1:5:
1| (x: x x) (x: x x)
| ^
… while calling anonymous lambda
at «string»:1:11:
1| (x: x x) (x: x x)
| ^
… from call site
at «string»:1:14:
1| (x: x x) (x: x x)
| ^
(19997 duplicate traces omitted)
error: stack overflow
at «string»:1:14:
1| (x: x x) (x: x x)
| ^
2023-12-29 22:16:44 -08:00
..
2023-12-11 12:17:36 -05:00
2023-11-10 11:02:37 -05:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-12-11 16:05:34 +01:00
2023-12-29 22:16:44 -08:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-11-15 19:21:17 +01:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-12-03 17:18:58 -08:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-11-21 13:35:12 -05:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-31 15:33:57 +01:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-11-28 14:28:19 +01:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-12-23 21:33:56 -05:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-11-28 14:28:19 +01:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-11-20 17:25:40 +01:00
2023-10-06 09:05:56 -04:00
2023-10-31 14:52:21 +01:00
2023-11-09 16:48:41 +01:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-12-06 23:43:42 +01:00
2023-10-06 09:05:56 -04:00
2023-12-23 17:15:09 -05:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-11 11:58:42 +00:00
2023-10-11 11:58:42 +00:00
2023-12-14 19:47:10 -05:00
2023-10-25 11:39:18 +02:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-11-06 19:13:40 +00:00
2023-10-18 00:14:11 +05:30
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-18 00:14:11 +05:30
2023-12-14 19:47:10 -05:00
2023-12-18 14:04:25 -08:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-11-03 11:03:58 +01:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-12-13 15:22:19 -05:00
2023-12-13 15:22:19 -05:00
2023-12-13 15:22:19 -05:00
2023-10-06 09:05:56 -04:00
2023-11-06 21:21:20 +01:00
2023-10-23 17:32:50 +02:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-11-06 11:06:31 -05:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-12-23 17:15:09 -05:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-12-06 14:05:32 +01:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-23 17:32:50 +02:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-17 09:39:59 +05:30
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-24 22:14:35 +02:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00
2023-11-09 22:31:32 +02:00
2023-10-06 09:05:56 -04:00
2023-10-06 09:05:56 -04:00