0fd357e7f6 
							
						 
					 
					
						
						
							
							container/init: do not suspend output  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 25s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 39s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 39s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 42s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 43s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 41s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m20s 
				
			 
		
		
	 
 
	 
						
						Init is not very talkative after process start even when verbose. Suspending output here is pointless and does more harm than good.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-10-23 08:11:00 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							57231d4acf 
							
						 
					 
					
						
						
							
							container/init: improve signal handling  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 32s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 2m9s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 3m9s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 3m57s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 3m58s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 4m43s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m30s 
				
			 
		
		
	 
 
	 
						
						The SIGTERM signal is delivered in many other cases and can lead to strange behaviour. The unconditional resume of the logger also causes strange behaviour in the cancellation forwarding path. This change also passes through additional signals.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-10-23 08:02:03 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							622f945c22 
							
						 
					 
					
						
						
							
							container/init: check msg in entrypoint  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 34s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 2m14s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 3m10s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 3m59s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 4m8s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 4m46s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m27s 
				
			 
		
		
	 
 
	 
						
						This covers invalid call to Init.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-10-22 04:20:08 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							ae65491223 
							
						 
					 
					
						
						
							
							container/init: use one channel for wait4  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 34s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 2m20s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 3m12s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 4m3s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 4m6s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 4m51s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m31s 
				
			 
		
		
	 
 
	 
						
						When using two channels it is possible for the other case to be reached before all pending winfo are consumed, causing incorrect reporting.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-10-15 21:35:19 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							a941ac025f 
							
						 
					 
					
						
						
							
							container/init: unwrap descriptive fatal error  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 33s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 2m12s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 3m6s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 4m0s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 5m20s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 2m3s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m27s 
				
			 
		
		
	 
 
	 
						
						These errors are printed with a descriptive message prefixed to them, so it is more readable to expose the underlying errno.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-10-09 22:04:35 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							87b5c30ef6 
							
						 
					 
					
						
						
							
							message: relocate from container  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 35s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 2m22s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 4m2s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 4m28s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 5m21s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 2m9s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m29s 
				
			 
		
		
	 
 
	 
						
						This package is quite useful. This change allows it to be imported without importing container.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-10-09 05:18:19 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							5d18af0007 
							
						 
					 
					
						
						
							
							container/fhs: move pathname constants  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 34s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 2m6s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 4m1s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 4m29s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 3m5s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 2m10s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m21s 
				
			 
		
		
	 
 
	 
						
						This allows referencing FHS pathnames without importing container.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-10-07 21:29:16 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							46cd3a28c8 
							
						 
					 
					
						
						
							
							container: remove global msg  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 1m10s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 2m40s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 3m58s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 4m44s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 5m1s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 6m2s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m47s 
				
			 
		
		
	 
 
	 
						
						This frees all container instances of side effects.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-09-29 06:11:47 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							e55822c62f 
							
						 
					 
					
						
						
							
							container/init: reduce verbose noise  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 56s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 2m38s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 3m45s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 4m36s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 4m45s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 5m43s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m41s 
				
			 
		
		
	 
 
	 
						
						This makes it possible to optionally omit the identifying verbose message, for when the Op implementation can provide a much more useful message in its case, using information not yet available to the String method.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-09-28 21:51:10 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							712cfc06d7 
							
						 
					 
					
						
						
							
							container: wrap container init start errors  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 35s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 1m59s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 3m20s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 4m26s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 3m47s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 5m21s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m35s 
				
			 
		
		
	 
 
	 
						
						This helps indicate the exact origin and nature of the error. This eliminates generic WrapErr from container.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-08-30 23:44:48 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							f24dd4ab8c 
							
						 
					 
					
						
						
							
							container/init: handle unwrapped errors  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 34s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 1m59s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 3m32s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 3m54s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 5m16s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 2m12s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m29s 
				
			 
		
		
	 
 
	 
						
						This is much cleaner from both the return statement and the error handling.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-08-29 01:37:13 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							a462341a0a 
							
						 
					 
					
						
						
							
							container: repeat and impossible state types  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 34s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 1m45s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 3m18s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 3m35s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 3m57s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 5m13s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m36s 
				
			 
		
		
	 
 
	 
						
						This moves repeated Op errors and impossible internal state errors off of msg.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-08-29 01:12:02 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							2baa2d7063 
							
						 
					 
					
						
						
							
							container/init: measure init behaviour  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 35s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 2m12s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 3m17s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 4m13s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 4m33s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 5m8s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m25s 
				
			 
		
		
	 
 
	 
						
						This used to be entirely done via integration tests, with almost no hope of error injection and coverage profile. These tests significantly increase confidence of future work in this area.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-08-24 04:52:32 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							0166833431 
							
						 
					 
					
						
						
							
							container/dispatcher: start goroutine in dispatcher  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 35s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 2m13s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 4m1s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 4m28s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 5m6s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 2m24s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m38s 
				
			 
		
		
	 
 
	 
						
						This allows instrumentation of calls from goroutine without relying on finalizers.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-08-23 21:58:40 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							b3da3da525 
							
						 
					 
					
						
						
							
							container/init: avoid multiple lastcap calls  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 37s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 2m19s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 3m24s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 4m18s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 4m27s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 5m14s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m19s 
				
			 
		
		
	 
 
	 
						
						This reduces the size of []kexpect in the test suite.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-08-23 11:09:11 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							1b3902df78 
							
						 
					 
					
						
						
							
							container/dispatcher: instrument each goroutine individually  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 35s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 44s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 2m33s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 2m35s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 3m25s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 3m41s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m30s 
				
			 
		
		
	 
 
	 
						
						Scheduler nondeterminism cannot be accounted for, so do this instead.
There should not be any performance penalty as these calls are optimised out for direct.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-08-23 11:07:16 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							ea1e3ebae9 
							
						 
					 
					
						
						
							
							container/params: pass fd instead of file  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 34s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 2m9s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 3m9s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 4m12s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 4m29s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 5m6s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m29s 
				
			 
		
		
	 
 
	 
						
						The file is very difficult to stub. Pass fd instead as it is the value that is actually useful.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-08-23 00:16:46 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							1c692bfb79 
							
						 
					 
					
						
						
							
							container/init: call lockOSThread through dispatcher  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 34s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 2m8s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 4m6s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 4m31s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 5m5s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 2m8s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m20s 
				
			 
		
		
	 
 
	 
						
						This degrades test performance if not stubbed out.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-08-22 22:24:14 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							09d2844981 
							
						 
					 
					
						
						
							
							container/init: wrap syscall helper functions  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 33s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 2m7s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 3m8s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 3m59s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 4m26s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 5m6s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m26s 
				
			 
		
		
	 
 
	 
						
						This allows tests to stub all kernel behaviour, enabling measurement of all function call arguments and error injection.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-08-22 19:27:31 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							5d8a2199b6 
							
						 
					 
					
						
						
							
							container/init: op interface valid method  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 34s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 2m10s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 3m12s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 3m58s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 4m19s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 4m57s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m25s 
				
			 
		
		
	 
 
	 
						
						Check ops early and eliminate duplicate checks.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-08-21 00:18:50 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							339e4080dc 
							
						 
					 
					
						
						
							
							container/ops: move Op type to init file  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 34s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 2m17s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 3m9s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 4m8s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 4m22s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 5m2s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m28s 
				
			 
		
		
	 
 
	 
						
						This helps with the eventual separation of all setup ops into individual files.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-08-20 01:11:24 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							13c7083bc0 
							
						 
					 
					
						
						
							
							container: ptrace protection via Yama LSM  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 34s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 40s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 41s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 44s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 41s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 1m49s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m23s 
				
			 
		
		
	 
 
	 
						
						This is only a nice to have feature as the init process has no additional privileges and the monitor process was never reachable anyway.
Closes  #4 .
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-08-20 00:43:55 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							69a4ab8105 
							
						 
					 
					
						
						
							
							container: move PR_SET_NO_NEW_PRIVS to parent  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 28s 
				
			 
		
			
				
	Test / Create distribution (pull_request) Successful in 24s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 2m9s 
				
			 
		
			
				
	Test / Sandbox (pull_request) Successful in 1m51s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 4m17s 
				
			 
		
			
				
	Test / Hpkg (pull_request) Successful in 3m45s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 4m25s 
				
			 
		
			
				
	Test / Sandbox (race detector) (pull_request) Successful in 4m8s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 5m8s 
				
			 
		
			
				
	Test / Hakurei (race detector) (pull_request) Successful in 4m50s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 5m12s 
				
			 
		
			
				
	Test / Hakurei (pull_request) Successful in 40s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m40s 
				
			 
		
			
				
	Test / Flake checks (pull_request) Successful in 1m24s 
				
			 
		
		
	 
 
	 
						
						This allows some LSM setup in the parent.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-08-18 11:46:02 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							8aa65f28c6 
							
						 
					 
					
						
						
							
							container: allow additional state between ops  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 33s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 2m12s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 3m15s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 4m8s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 4m21s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 5m8s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m26s 
				
			 
		
		
	 
 
	 
						
						This is useful for ops that need to be aware of previous instances of themselves.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-08-17 01:32:07 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							e99d7affb0 
							
						 
					 
					
						
						
							
							container: use absolute for pathname  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Flake checks (push) Successful in 1m26s 
				
			 
		
			
				
	Test / Create distribution (push) Successful in 33s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 1m59s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 2m58s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 3m45s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 4m11s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 4m47s 
				
			 
		
		
	 
 
	 
						
						This is simultaneously more efficient and less error-prone. This change caused minor API changes in multiple other packages.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-08-11 04:56:42 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							82608164f6 
							
						 
					 
					
						
						
							
							container/params: remove confusingly named error  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 33s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 2m9s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 2m59s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 3m53s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m19s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 4m16s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 4m49s 
				
			 
		
		
	 
 
	 
						
						Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-08-09 17:37:46 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							9a25542c6d 
							
						 
					 
					
						
						
							
							container/init: use mount string constants  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 33s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 2m13s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 4m6s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 4m22s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 4m49s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 2m4s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m13s 
				
			 
		
		
	 
 
	 
						
						These literals were missed when the constants were first defined.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-08-04 04:00:05 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							c6be82bcf9 
							
						 
					 
					
						
						
							
							container/path: fhs path constants  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 33s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 2m6s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 3m6s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 4m14s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 4m11s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 4m40s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m18s 
				
			 
		
		
	 
 
	 
						
						This increases readability since this can help disambiguate absolute paths from similarly named path segments.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-08-03 21:16:45 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							4e85643865 
							
						 
					 
					
						
						
							
							container: implement autoroot as setup op  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 33s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 2m10s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 3m7s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 4m1s 
				
			 
		
			
				
	Test / Hpkg (push) Successful in 4m5s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 4m43s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m22s 
				
			 
		
		
	 
 
	 
						
						This code is useful beyond just pd behaviour, and implementing it this way also reduces IPC overhead.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-08-01 04:04:36 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							940ee00ffe 
							
						 
					 
					
						
						
							
							container/init: configurable lingering process wait delay  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 33s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 1m57s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 2m50s 
				
			 
		
			
				
	Test / Planterette (push) Successful in 3m39s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 3m43s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 4m33s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m16s 
				
			 
		
		
	 
 
	 
						
						Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-07-29 02:38:17 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							d6b07f12ff 
							
						 
					 
					
						
						
							
							container: forward context cancellation  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 32s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 1m56s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 2m47s 
				
			 
		
			
				
	Test / Planterette (push) Successful in 3m40s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 3m45s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 4m29s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m18s 
				
			 
		
		
	 
 
	 
						
						This allows container processes to exit gracefully.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-07-28 01:45:38 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							65fe09caf9 
							
						 
					 
					
						
						
							
							container: check cancel signal delivery  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 32s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 1m55s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 2m50s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 3m46s 
				
			 
		
			
				
	Test / Planterette (push) Successful in 3m52s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 4m28s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m18s 
				
			 
		
		
	 
 
	 
						
						This change also makes some parts of the test more robust.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-07-28 01:04:29 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							bd3fa53a55 
							
						 
					 
					
						
						
							
							container: access test case by index in helper  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 24s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 40s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 38s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 41s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 38s 
				
			 
		
			
				
	Test / Planterette (push) Successful in 39s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m17s 
				
			 
		
		
	 
 
	 
						
						This is more elegant and allows for much easier extension of the tests. Mountinfo is still serialised however due to libPaths nondeterminism.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-07-26 18:59:19 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							d5c7523726 
							
						 
					 
					
						
						
							
							container/init: fix prctl call  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 32s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 1m50s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 2m43s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 3m11s 
				
			 
		
			
				
	Test / Planterette (push) Successful in 3m35s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 4m21s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m8s 
				
			 
		
		
	 
 
	 
						
						This is a very silly typo. Luckily has no effect due to an upper layer doing PR_SET_NO_NEW_PRIVS already.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-07-07 14:06:14 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							356b42a406 
							
						 
					 
					
						
						
							
							container/init: use /proc/self as intermediate  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 43s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 2m19s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 4m11s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 5m28s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 2m10s 
				
			 
		
			
				
	Test / Planterette (push) Successful in 38m44s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 3m0s 
				
			 
		
		
	 
 
	 
						
						Setting up via /tmp is okay, /proc/self/fd makes a lot more sense though for reasons described in the comment.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-07-06 02:14:35 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							d2f9a9b83b 
							
						 
					 
					
						
						
							
							treewide: migrate to hakurei.app  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 24s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 46s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 2m9s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 3m14s 
				
			 
		
			
				
	Test / Planterette (push) Successful in 3m41s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 3m40s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m18s 
				
			 
		
		
	 
 
	 
						
						Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-07-03 03:30:39 +09:00 
						 
				 
			
				
					
						
					 
					
						
						
							
							
								
									
								
							
						
						
						
							
						
						
							1b5ecd9eaf 
							
						 
					 
					
						
						
							
							container: move out of toplevel  
						
						... 
						
						
	
		
			
	 
	
	
		
	
	
		
			
				
	Test / Create distribution (push) Successful in 32s 
				
			 
		
			
				
	Test / Sandbox (push) Successful in 1m52s 
				
			 
		
			
				
	Test / Sandbox (race detector) (push) Successful in 3m14s 
				
			 
		
			
				
	Test / Planterette (push) Successful in 3m36s 
				
			 
		
			
				
	Test / Hakurei (race detector) (push) Successful in 4m31s 
				
			 
		
			
				
	Test / Hakurei (push) Successful in 2m3s 
				
			 
		
			
				
	Test / Flake checks (push) Successful in 1m13s 
				
			 
		
		
	 
 
	 
						
						This allows slightly easier use of the vanity url. This also provides some disambiguation between low level containers and hakurei app containers.
Signed-off-by: Ophestra <cat@gensokyo.uk> 
						
						
					 
					
						2025-07-03 02:59:43 +09:00