| 25 Oct 2025 |
raitobezarius | (alerting shows me nothing for today for Gerrit) | 16:04:45 |
emily | it was some text/plain page when bouncing out of Keycloak | 17:49:08 |
emily | I forget the exact wording but it was literally just "Server Error" or something with nothing else | 17:49:18 |
raitobezarius | yeah, indeed | 21:18:16 |
raitobezarius | i can confirm it | 21:18:24 |
| 28 Oct 2025 |
lillecarl | diff --git a/lix/libstore/local-store.cc b/lix/libstore/local-store.cc
index d7cfe6874..865d4e030 100644
--- a/lix/libstore/local-store.cc
+++ b/lix/libstore/local-store.cc
@@ -73,6 +73,7 @@ struct LocalStore::DBState::Stmts {
SQLiteStmt QueryDerivationOutputs;
SQLiteStmt QueryPathFromHashPart;
SQLiteStmt QueryValidPaths;
+ SQLiteStmt UpdateRegTime;
};
int getSchema(Path schemaPath)
@@ -296,7 +297,7 @@ void LocalStore::prepareStatements(DBState & state)
state.stmts->RegisterValidPath = state.db.create(
"insert into ValidPaths (path, hash, registrationTime, deriver, narSize, ultimate, sigs, ca) values (?, ?, ?, ?, ?, ?, ?, ?);");
state.stmts->UpdatePathInfo = state.db.create(
- "update ValidPaths set narSize = ?, hash = ?, ultimate = ?, sigs = ?, ca = ? where path = ?;");
+ "update ValidPaths set narSize = ?, hash = ?, ultimate = ?, sigs = ?, ca = ?, registrationTime = unixepoch() where path = ?;");
state.stmts->AddReference = state.db.create(
"insert or replace into Refs (referrer, reference) values (?, ?);");
state.stmts->QueryPathInfo = state.db.create(
@@ -318,6 +319,7 @@ void LocalStore::prepareStatements(DBState & state)
state.stmts->QueryPathFromHashPart = state.db.create(
"select path from ValidPaths where path >= ? limit 1;");
state.stmts->QueryValidPaths = state.db.create("select path from ValidPaths");
+ state.stmts->UpdateRegTime= state.db.create("update ValidPaths set registrationTime = unixepoch() where path = ?;");
}
@@ -715,6 +717,7 @@ try {
std::shared_ptr<const ValidPathInfo> LocalStore::queryPathInfoInternal(DBState & state, const StorePath & path)
{
+ state.stmts->UpdateRegTime.use()(printStorePath(path)).exec();
/* Get the path info. */
auto useQueryPathInfo(state.stmts->QueryPathInfo.use()(printStorePath(path)));
@@ -779,6 +782,7 @@ void LocalStore::updatePathInfo(DBState & state, const ValidPathInfo & info)
uint64_t LocalStore::queryValidPathId(DBState & state, const StorePath & path)
{
+ state.stmts->UpdateRegTime.use()(printStorePath(path)).exec();
auto use(state.stmts->QueryPathInfo.use()(printStorePath(path)));
if (!use.next()) // TODO: I guess if SQLITE got corrupted..?
throw InvalidPath("path '%s' does not exist in the Lix database", printStorePath(path));
@@ -788,6 +792,7 @@ uint64_t LocalStore::queryValidPathId(DBState & state, const StorePath & path)
bool LocalStore::isValidPath_(DBState & state, const StorePath & path)
{
+ state.stmts->UpdateRegTime.use()(printStorePath(path)).exec();
return state.stmts->QueryPathInfo.use()(printStorePath(path)).next();
}
How on earth does this not update registrationTime on a package when I build it? π€
| 01:56:19 |
lillecarl | * diff --git a/lix/libstore/local-store.cc b/lix/libstore/local-store.cc
index d7cfe6874..865d4e030 100644
--- a/lix/libstore/local-store.cc
+++ b/lix/libstore/local-store.cc
@@ -73,6 +73,7 @@ struct LocalStore::DBState::Stmts {
SQLiteStmt QueryDerivationOutputs;
SQLiteStmt QueryPathFromHashPart;
SQLiteStmt QueryValidPaths;
+ SQLiteStmt UpdateRegTime;
};
int getSchema(Path schemaPath)
@@ -296,7 +297,7 @@ void LocalStore::prepareStatements(DBState & state)
state.stmts->RegisterValidPath = state.db.create(
"insert into ValidPaths (path, hash, registrationTime, deriver, narSize, ultimate, sigs, ca) values (?, ?, ?, ?, ?, ?, ?, ?);");
state.stmts->UpdatePathInfo = state.db.create(
- "update ValidPaths set narSize = ?, hash = ?, ultimate = ?, sigs = ?, ca = ? where path = ?;");
+ "update ValidPaths set narSize = ?, hash = ?, ultimate = ?, sigs = ?, ca = ?, registrationTime = unixepoch() where path = ?;");
state.stmts->AddReference = state.db.create(
"insert or replace into Refs (referrer, reference) values (?, ?);");
state.stmts->QueryPathInfo = state.db.create(
@@ -318,6 +319,7 @@ void LocalStore::prepareStatements(DBState & state)
state.stmts->QueryPathFromHashPart = state.db.create(
"select path from ValidPaths where path >= ? limit 1;");
state.stmts->QueryValidPaths = state.db.create("select path from ValidPaths");
+ state.stmts->UpdateRegTime= state.db.create("update ValidPaths set registrationTime = unixepoch() where path = ?;");
}
@@ -715,6 +717,7 @@ try {
std::shared_ptr<const ValidPathInfo> LocalStore::queryPathInfoInternal(DBState & state, const StorePath & path)
{
+ state.stmts->UpdateRegTime.use()(printStorePath(path)).exec();
/* Get the path info. */
auto useQueryPathInfo(state.stmts->QueryPathInfo.use()(printStorePath(path)));
@@ -779,6 +782,7 @@ void LocalStore::updatePathInfo(DBState & state, const ValidPathInfo & info)
uint64_t LocalStore::queryValidPathId(DBState & state, const StorePath & path)
{
+ state.stmts->UpdateRegTime.use()(printStorePath(path)).exec();
auto use(state.stmts->QueryPathInfo.use()(printStorePath(path)));
if (!use.next()) // TODO: I guess if SQLITE got corrupted..?
throw InvalidPath("path '%s' does not exist in the Lix database", printStorePath(path));
@@ -788,6 +792,7 @@ uint64_t LocalStore::queryValidPathId(DBState & state, const StorePath & path)
bool LocalStore::isValidPath_(DBState & state, const StorePath & path)
{
+ state.stmts->UpdateRegTime.use()(printStorePath(path)).exec();
return state.stmts->QueryPathInfo.use()(printStorePath(path)).next();
}
~~How on earth does this not update registrationTime on a package when I build it?~~ AAaaaaaaa I'm running the Nixpkgs daemon. It's getting too late π€
| 01:57:59 |
lillecarl | * diff --git a/lix/libstore/local-store.cc b/lix/libstore/local-store.cc
index d7cfe6874..865d4e030 100644
--- a/lix/libstore/local-store.cc
+++ b/lix/libstore/local-store.cc
@@ -73,6 +73,7 @@ struct LocalStore::DBState::Stmts {
SQLiteStmt QueryDerivationOutputs;
SQLiteStmt QueryPathFromHashPart;
SQLiteStmt QueryValidPaths;
+ SQLiteStmt UpdateRegTime;
};
int getSchema(Path schemaPath)
@@ -296,7 +297,7 @@ void LocalStore::prepareStatements(DBState & state)
state.stmts->RegisterValidPath = state.db.create(
"insert into ValidPaths (path, hash, registrationTime, deriver, narSize, ultimate, sigs, ca) values (?, ?, ?, ?, ?, ?, ?, ?);");
state.stmts->UpdatePathInfo = state.db.create(
- "update ValidPaths set narSize = ?, hash = ?, ultimate = ?, sigs = ?, ca = ? where path = ?;");
+ "update ValidPaths set narSize = ?, hash = ?, ultimate = ?, sigs = ?, ca = ?, registrationTime = unixepoch() where path = ?;");
state.stmts->AddReference = state.db.create(
"insert or replace into Refs (referrer, reference) values (?, ?);");
state.stmts->QueryPathInfo = state.db.create(
@@ -318,6 +319,7 @@ void LocalStore::prepareStatements(DBState & state)
state.stmts->QueryPathFromHashPart = state.db.create(
"select path from ValidPaths where path >= ? limit 1;");
state.stmts->QueryValidPaths = state.db.create("select path from ValidPaths");
+ state.stmts->UpdateRegTime= state.db.create("update ValidPaths set registrationTime = unixepoch() where path = ?;");
}
@@ -715,6 +717,7 @@ try {
std::shared_ptr<const ValidPathInfo> LocalStore::queryPathInfoInternal(DBState & state, const StorePath & path)
{
+ state.stmts->UpdateRegTime.use()(printStorePath(path)).exec();
/* Get the path info. */
auto useQueryPathInfo(state.stmts->QueryPathInfo.use()(printStorePath(path)));
@@ -779,6 +782,7 @@ void LocalStore::updatePathInfo(DBState & state, const ValidPathInfo & info)
uint64_t LocalStore::queryValidPathId(DBState & state, const StorePath & path)
{
+ state.stmts->UpdateRegTime.use()(printStorePath(path)).exec();
auto use(state.stmts->QueryPathInfo.use()(printStorePath(path)));
if (!use.next()) // TODO: I guess if SQLITE got corrupted..?
throw InvalidPath("path '%s' does not exist in the Lix database", printStorePath(path));
@@ -788,6 +792,7 @@ uint64_t LocalStore::queryValidPathId(DBState & state, const StorePath & path)
bool LocalStore::isValidPath_(DBState & state, const StorePath & path)
{
+ state.stmts->UpdateRegTime.use()(printStorePath(path)).exec();
return state.stmts->QueryPathInfo.use()(printStorePath(path)).next();
}
How on earth does this not update registrationTime on a package when I build it? Edit: AAaaaaaaa I'm running the Nixpkgs daemon. It's getting too late π€
| 01:58:34 |
lillecarl | [lillecarl@shitbox] in [βΈ kubernetes-admin@shitbox (nix-csi)]~/C/lix [π main][!][π¦ v1.86.0][βοΈ impure (lix-shell-env-env)][π loaded/allowed][πfish][asπ§]
[03:00:38]β― sudo -E ./build/lix/nix/nix path-info --store local /nix/store/0fc5496qwndd1m5lhxk58alv28ga0dn4-manifest.json --json | jq '.[0].registrationTime'
warning: $HOME ('/home/lillecarl') is not owned by you, falling back to the one defined in the 'passwd' file ('/root')
1761616839
[lillecarl@shitbox] in [βΈ kubernetes-admin@shitbox (nix-csi)]~/C/lix [π main][!][π¦ v1.86.0][βοΈ impure (lix-shell-env-env)][π loaded/allowed][πfish][asπ§]
[03:00:39]β― sudo -E ./build/lix/nix/nix path-info --store local /nix/store/0fc5496qwndd1m5lhxk58alv28ga0dn4-manifest.json --json | jq '.[0].registrationTime'
warning: $HOME ('/home/lillecarl') is not owned by you, falling back to the one defined in the 'passwd' file ('/root')
1761616840
That's more like it, thanks!
| 02:01:13 |
| Taeer Bar-Yam joined the room. | 22:47:00 |