mirror of
				https://github.com/Telecominfraproject/ols-nos.git
				synced 2025-10-31 10:07:49 +00:00 
			
		
		
		
	[build] Add environment when using dpkg hook to avoid lock loop. (#13150)
Why I did it In some cases, dpkg will call dpkg to validate version. dpkg hook will get stuck in a loop to lock. How I did it Use an env variable to skip duplicated lock.
This commit is contained in:
		| @@ -123,6 +123,8 @@ echo '[INFO] Install and setup eatmydata' | ||||
| sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install eatmydata | ||||
| sudo LANG=C chroot $FILESYSTEM_ROOT ln -s /usr/bin/eatmydata /usr/local/bin/dpkg | ||||
| echo 'Dir::Bin::dpkg "/usr/local/bin/dpkg";' | sudo tee $FILESYSTEM_ROOT/etc/apt/apt.conf.d/00image-install-eatmydata > /dev/null | ||||
| ## Note: dpkg hook conflict with eatmydata | ||||
| sudo LANG=C chroot $FILESYSTEM_ROOT rm /usr/local/sbin/dpkg -f | ||||
|  | ||||
| echo '[INFO] Install packages for building image' | ||||
| sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install makedev psmisc | ||||
|   | ||||
							
								
								
									
										10
									
								
								src/sonic-build-hooks/hooks/dpkg
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										10
									
								
								src/sonic-build-hooks/hooks/dpkg
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							| @@ -3,8 +3,16 @@ | ||||
| . /usr/local/share/buildinfo/scripts/buildinfo_base.sh | ||||
| REAL_COMMAND=$(get_command dpkg) | ||||
| COMMAND_INFO="Locked by command: $REAL_COMMAND $@" | ||||
| lock_result=$(acquire_apt_installation_lock "$COMMAND_INFO" ) | ||||
| NEED_RELEASE_LOCK=n | ||||
| if [[ "$DPKG_HOOK_LOCKED" != "y" ]];then | ||||
|     lock_result=$(acquire_apt_installation_lock "$COMMAND_INFO" ) | ||||
|     export DPKG_HOOK_LOCKED=y | ||||
|     NEED_RELEASE_LOCK=y | ||||
| fi | ||||
| $REAL_COMMAND "$@" | ||||
| command_result=$? | ||||
| if [[ "$NEED_RELEASE_LOCK" == "y" ]];then | ||||
|     unset DPKG_HOOK_LOCKED | ||||
| fi | ||||
| [ "$lock_result" == y ] && release_apt_installation_lock | ||||
| exit $command_result | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Liu Shilong
					Liu Shilong