Bug#1033267: Upload ccache bookworm fix via testing-proposed-updates?

2023-03-21 Thread Paul Gevers

Hi,

On 21-03-2023 22:11, Joel Rosdahl wrote:

I think that what made things unclear to me was the "revert" part which just
didn't fit my mental model of how things work. But under "Applying for an
unblock" I now read "[...] revert [...] e.g. by using a
new-version+reallyold-version versioning scheme". I've never seen that
workaround before. So IIUC this suggests using a version like
4.8-2+really4.7.5? Are there other ways since it says "e.g."?


You can use any version you like that's bigger than what's currently in 
the archive. But to prevent epochs you want a version that's lower than 
the next upstream version. The +really scheme is quite common for this 
purpose.


Paul


OpenPGP_signature
Description: OpenPGP digital signature


Bug#1033267: Upload ccache bookworm fix via testing-proposed-updates?

2023-03-21 Thread Joel Rosdahl
On Tue, Mar 21, 2023, at 20:55, Paul Gevers wrote:
> I'm wondering where you are reading that. The text says: If there are 
> unrelated changes in unstable, we ask you to revert these changes 
> instead of making an upload to testing-proposed-updates.
>
> What's unclear in that phrase?

I think that what made things unclear to me was the "revert" part which just
didn't fit my mental model of how things work. But under "Applying for an
unblock" I now read "[...] revert [...] e.g. by using a
new-version+reallyold-version versioning scheme". I've never seen that
workaround before. So IIUC this suggests using a version like
4.8-2+really4.7.5? Are there other ways since it says "e.g."?

-- Joel



Processed: Re: Bug#1033267: Upload ccache bookworm fix via testing-proposed-updates?

2023-03-21 Thread Debian Bug Tracking System
Processing control commands:

> tag -1 moreinfo
Bug #1033267 [release.debian.org] Upload ccache bookworm fix via 
testing-proposed-updates?
Added tag(s) moreinfo.

-- 
1033267: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1033267
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems



Bug#1033267: Upload ccache bookworm fix via testing-proposed-updates?

2023-03-21 Thread Paul Gevers

Control: tag -1 moreinfo

On 20-03-2023 22:15, Joel Rosdahl wrote:

Would it be
appropriate to use testing-proposed-updates for this, as suggested on the freeze
policy page?


I'm wondering where you are reading that. The text says: If there are 
unrelated changes in unstable, we ask you to revert these changes 
instead of making an upload to testing-proposed-updates.


What's unclear in that phrase?

Paul


OpenPGP_signature
Description: OpenPGP digital signature


Bug#1033267: Upload ccache bookworm fix via testing-proposed-updates?

2023-03-20 Thread Joel Rosdahl
Package: release.debian.org
Severity: normal

[ Short version ]
I prematurely uploaded ccache/4.8-1 to unstable to fix bug #1033191. I would
like to get a more targeted fix into testing instead of that one. Would it be
appropriate to use testing-proposed-updates for this, as suggested on the freeze
policy page?

[ Long version ]
Ccache versions 4.7–4.7.4 by default enable a feature called the inode cache
which shares information between processes via a memory mapped file,
synchronized by pthread mutexes. Yesterday, a user reported that he is seeing
ccache processes hanging on futex calls (related to the inode cache feature) on
GitLab runners with Debian bookworm as well as other distributions using ccache
4.7.4. The inode cache synchronization mechanism was rewritten in ccache 4.8 to
use spin locks, thus taking pthread mutexes out of the equation, so after
reviewing the freeze policy page briefly I uploaded ccache/4.8-1 to improve the
situation since ccache is a non-key package with good autopkgtests.

Except I was wrong: ccache is apparently considered a key package, which I did
not know. Also, in retrospect, I was too stressed and should definitely have
made a more targeted fix.

The user then submitted Debian bug #1033191 with severity serious. I agree that
it would be unfortunate to ship ccache 4.7.4 in bookworm. Unless fixed, builds
using ccache 4.7.4 (maybe in specific container environments such as GitLab
runners with buggy kernels, maybe in other scenarios) risk getting stuck.

For reference, I'm attaching the targeted fix I would like to make.

-- Joel
diff -Nru ccache-4.7.4/LICENSE.adoc ccache-4.7.5/LICENSE.adoc
--- ccache-4.7.4/LICENSE.adoc	2022-11-21 19:53:32.0 +0100
+++ ccache-4.7.5/LICENSE.adoc	2023-03-20 20:47:12.0 +0100
@@ -35,7 +35,7 @@
 
 
 Copyright (C) 2002-2007 Andrew Tridgell
-Copyright (C) 2009-2022 Joel Rosdahl and other contributors
+Copyright (C) 2009-2023 Joel Rosdahl and other contributors
 
 
 
diff -Nru ccache-4.7.4/cmake/CcacheVersion.cmake ccache-4.7.5/cmake/CcacheVersion.cmake
--- ccache-4.7.4/cmake/CcacheVersion.cmake	2022-11-21 19:53:32.0 +0100
+++ ccache-4.7.5/cmake/CcacheVersion.cmake	2023-03-20 20:47:12.0 +0100
@@ -22,7 +22,7 @@
 # CCACHE_VERSION_ORIGIN is set to "archive" in scenario 1 and "git" in scenario
 # 3.
 
-set(version_info "1527040bc2a278b9d3d51badb732ecf5841d8bb5 HEAD, tag: v4.7.4, origin/master, origin/HEAD, master")
+set(version_info "9b1033f3ae534e5aad02c10f663b589b8f28c026 HEAD, tag: v4.7.5, origin/HEAD, origin/4.7-maint, 4.7-maint")
 set(CCACHE_VERSION "unknown")
 
 if(version_info MATCHES "^([0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f])[0-9a-f]* (.*)")
diff -Nru ccache-4.7.4/debian/changelog ccache-4.7.5/debian/changelog
--- ccache-4.7.4/debian/changelog	2022-11-21 20:40:46.0 +0100
+++ ccache-4.7.5/debian/changelog	2023-03-20 21:59:44.0 +0100
@@ -1,3 +1,10 @@
+ccache (4.7.5-1) unstable; urgency=medium
+
+  * New upstream release 4.7.5, whose only change compared with 4.7.4 is
+to disable the inode cache by default (closes: #1033191)
+
+ -- Joel Rosdahl   Mon, 20 Mar 2023 21:59:44 +0100
+
 ccache (4.7.4-1) unstable; urgency=medium
 
   * New upstream release 4.7.4
diff -Nru ccache-4.7.4/doc/MANUAL.adoc ccache-4.7.5/doc/MANUAL.adoc
--- ccache-4.7.4/doc/MANUAL.adoc	2022-11-21 19:53:32.0 +0100
+++ ccache-4.7.5/doc/MANUAL.adoc	2023-03-20 20:47:12.0 +0100
@@ -756,7 +756,7 @@
 
 If true, ccache will cache source file hashes based on device, inode and
 timestamps. This reduces the time spent on hashing include files since the
-result can be resused between compilations. The default is true. The feature
+result can be resused between compilations. The default is false. The feature
 requires <> to be located on a local
 filesystem of a supported type.
 +
diff -Nru ccache-4.7.4/doc/NEWS.adoc ccache-4.7.5/doc/NEWS.adoc
--- ccache-4.7.4/doc/NEWS.adoc	2022-11-21 19:53:32.0 +0100
+++ ccache-4.7.5/doc/NEWS.adoc	2023-03-20 20:47:12.0 +0100
@@ -1,5 +1,16 @@
 = Ccache news
 
+== Ccache 4.7.5
+
+Release date: 2023-03-20
+
+=== Bug fixes
+
+- Disabled the inode cache by default again since there have reports of ccache
+  processes hanging on futex calls related to the inode cache. +
+  [small]#_[contributed by Joel Rosdahl]_#
+
+
 == Ccache 4.7.4
 
 Release date: 2022-11-21
diff -Nru ccache-4.7.4/src/Config.hpp ccache-4.7.5/src/Config.hpp
--- ccache-4.7.4/src/Config.hpp	2022-11-21 19:53:32.0 +0100
+++ ccache-4.7.5/src/Config.hpp	2023-03-20 20:47:12.0 +0100
@@ -1,4 +1,4 @@
-// Copyright (C) 2019-2022 Joel Rosdahl and other contributors
+// Copyright (C) 2019-2023 Joel Rosdahl and other contributors
 //
 // See doc/AUTHORS.adoc for a complete list of contributors.
 //
@@ -181,7 +181,7 @@
   bool m_hash_dir = true;
   std::string m_ignore_headers_in_manifest;
   std::string m_ignore_options;
-  bool m_inode_cache = true;
+  b