From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ot1-f51.google.com (mail-ot1-f51.google.com [209.85.210.51]) by mx.groups.io with SMTP id smtpd.web11.537.1625524609378172993 for ; Mon, 05 Jul 2021 15:36:49 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@sakoman-com.20150623.gappssmtp.com header.s=20150623 header.b=PD76WFoZ; spf=softfail (domain: sakoman.com, ip: 209.85.210.51, mailfrom: steve@sakoman.com) Received: by mail-ot1-f51.google.com with SMTP id 59-20020a9d0ac10000b0290462f0ab0800so19677500otq.11 for ; Mon, 05 Jul 2021 15:36:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sakoman-com.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=mzL1MF7EAjl8IqjPj3w9baMVwyySUZSrXoCxGu4Fr9o=; b=PD76WFoZhoh/misXWzKB4K8u/+3ZHb0z4PmP4h83UznFOp64iY2PG4zY+RZ6xURZat bcZrVzT6ue7prfZXiA5t0XRKWjbD8GONA+yC3mNO0DxszdTGKVSu2194ODz6isRtxh3i Ya0Ki6s+Y22nJfmCywEVlH8AH2//uxMUJbpa0kxhyX5dqKZH12PUk2Z4rFSpUO4Qo/sl 4sFKoMbl0bR3D/VA6PHtfqVcgUmerDoCQs7dAgVkNicC1bxUktmc/yYA0qswHP5mwdGQ cJYsqN596ct6K1rYoYS1Kxl6GpgpZcQ34sB+xALfeOheoajYNsharoPkwnfGK6XpnGzz tOPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=mzL1MF7EAjl8IqjPj3w9baMVwyySUZSrXoCxGu4Fr9o=; b=F5hk+u+Uc0kUW2C6NXZmDPqFaFOg86RQyqNEIzvf8JFViPG3HXIgctERRJ3piNeol5 0M1kTItuihDqyJcD2O0H5gUVfdOALN1lEePPfwj2/VJn/LPvYn7gU4DWpkKf2rKmsfHr SdFBTc4r4c7ReOrHiYnOQ1mvHEiukAZ1BTkeoFkZh6t+PaEYtg0CMpdsXxx3YESdAUk5 pzZIo6xZuzzNVwXXl4aSkSSaRQ4CoAr/EbsnIXai8vNSCqYpUDE/6vdpIpND0N/sOuBi D3wTasWlohtLzUmPZIrC/pvLyYmLfSclBoe5TlAvse65hQn48W+6K04XYLX9cP1WN5VV 1z0A== X-Gm-Message-State: AOAM530wh/WSleIxxsXdI7qKM+VP6dYZ8lk/pdTK1tlWmnbS4Xyb5sal XvwPXdhwzOBT6X3ClQ/Kmels5ELvsULOT9Ab X-Google-Smtp-Source: ABdhPJwZnjVbFY9KK68tVbXQsgNZeAEhF4oplwxJEGJhwh4N697w9RBq/arHWJY5NVyMEY2s47G0AA== X-Received: by 2002:a9d:2923:: with SMTP id d32mr12392344otb.67.1625524608355; Mon, 05 Jul 2021 15:36:48 -0700 (PDT) Return-Path: Received: from hexa.router0800d9.com ([172.243.4.16]) by smtp.gmail.com with ESMTPSA id i16sm2870178otp.7.2021.07.05.15.36.44 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 Jul 2021 15:36:47 -0700 (PDT) From: "Steve Sakoman" To: openembedded-core@lists.openembedded.org Subject: [OE-core][dunfell 15/19] sstate.bbclass: fix errors about read-only sstate mirrors Date: Mon, 5 Jul 2021 12:34:52 -1000 Message-Id: <4b5ab8868a563e12bea4df0bfb8309eff004e3e2.1625511812.git.steve@sakoman.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: Michael Ho If a read-only sstate mirror is used in conjunction with hash equiv, then OSError will be raised when an sstate-cache hit is achieved. This is because sstate_task_postfunc will try to "touch" the symlinks that point to the read-only sstate mirror when sstate_report_unihash has changed SSTATE_PKG. This commit adds an additional exception handler to silently mask read only rootfs errors thrown during the touch. The fix is also duplicated to sstate_eventhandler as the code is very similar but it may not be needed there. Example of the error: File: 'exec_python_func() autogenerated', lineno: 2, function: 0001: *** 0002:sstate_task_postfunc(d) 0003: File: '/poky/meta/classes/sstate.bbclass', lineno: 774, function: sstate_task_postfunc 0770: 0771: omask = os.umask(0o002) 0772: if omask != 0o002: 0773: bb.note("Using umask 0o002 (not %0o) for sstate packaging" % omask) *** 0774: sstate_package(shared_state, d) 0775: os.umask(omask) 0776: 0777: sstateinst = d.getVar("SSTATE_INSTDIR") 0778: d.setVar('SSTATE_FIXMEDIR', shared_state['fixmedir']) File: '/poky/meta/classes/sstate.bbclass', lineno: 703, function: sstate_package 0699: if not os.path.exists(siginfo): 0700: bb.siggen.dump_this_task(siginfo, d) 0701: else: 0702: try: *** 0703: os.utime(siginfo, None) 0704: except PermissionError: 0705: pass 0706: 0707: return Exception: OSError: [Errno 30] Read-only file system Signed-off-by: Michael Ho Signed-off-by: Alexandre Belloni Signed-off-by: Richard Purdie (cherry picked from commit 244b3be0358a66e0cca4016fe26144e3d7323390) Signed-off-by: Steve Sakoman --- meta/classes/sstate.bbclass | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass index a689f7f677..53dcfc8274 100644 --- a/meta/classes/sstate.bbclass +++ b/meta/classes/sstate.bbclass @@ -703,6 +703,10 @@ def sstate_package(ss, d): os.utime(siginfo, None) except PermissionError: pass + except OSError as e: + # Handle read-only file systems gracefully + if e.errno != errno.EROFS: + raise e return @@ -1141,6 +1145,10 @@ python sstate_eventhandler() { os.utime(siginfo, None) except PermissionError: pass + except OSError as e: + # Handle read-only file systems gracefully + if e.errno != errno.EROFS: + raise e } -- 2.25.1