aboutsummaryrefslogtreecommitdiff
path: root/src/zenremotestore
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2026-01-28 10:32:02 +0100
committerGitHub Enterprise <[email protected]>2026-01-28 10:32:02 +0100
commit03c23e9ce6a6ba6138e10a48e810f251d53ca9f4 (patch)
tree48d07f32930e0ef65963e48e65bbd0e6dfbeda67 /src/zenremotestore
parent5.7.19-pre1 (diff)
downloadzen-03c23e9ce6a6ba6138e10a48e810f251d53ca9f4.tar.xz
zen-03c23e9ce6a6ba6138e10a48e810f251d53ca9f4.zip
Avoid conversion from JSon to compact binary when querying for builds to avoid integer vs float conversion issues (#735)
Diffstat (limited to 'src/zenremotestore')
-rw-r--r--src/zenremotestore/builds/filebuildstorage.cpp5
-rw-r--r--src/zenremotestore/builds/jupiterbuildstorage.cpp10
-rw-r--r--src/zenremotestore/include/zenremotestore/builds/buildstorage.h2
-rw-r--r--src/zenremotestore/include/zenremotestore/jupiter/jupitersession.h2
-rw-r--r--src/zenremotestore/jupiter/jupitersession.cpp5
5 files changed, 11 insertions, 13 deletions
diff --git a/src/zenremotestore/builds/filebuildstorage.cpp b/src/zenremotestore/builds/filebuildstorage.cpp
index 1474fd819..55e69de61 100644
--- a/src/zenremotestore/builds/filebuildstorage.cpp
+++ b/src/zenremotestore/builds/filebuildstorage.cpp
@@ -61,13 +61,12 @@ public:
return Writer.Save();
}
- virtual CbObject ListBuilds(CbObject Query) override
+ virtual CbObject ListBuilds(std::string_view JsonQuery) override
{
ZEN_TRACE_CPU("FileBuildStorage::ListBuilds");
- ZEN_UNUSED(Query);
uint64_t ReceivedBytes = 0;
- uint64_t SentBytes = Query.GetSize();
+ uint64_t SentBytes = JsonQuery.size();
SimulateLatency(SentBytes, 0);
auto _ = MakeGuard([&]() { SimulateLatency(0, ReceivedBytes); });
diff --git a/src/zenremotestore/builds/jupiterbuildstorage.cpp b/src/zenremotestore/builds/jupiterbuildstorage.cpp
index 962ffaaed..23d0ddd4c 100644
--- a/src/zenremotestore/builds/jupiterbuildstorage.cpp
+++ b/src/zenremotestore/builds/jupiterbuildstorage.cpp
@@ -104,15 +104,13 @@ public:
return Response.Save();
}
- virtual CbObject ListBuilds(CbObject Query) override
+ virtual CbObject ListBuilds(std::string_view JsonQuery) override
{
ZEN_TRACE_CPU("Jupiter::ListBuilds");
- Stopwatch ExecutionTimer;
- auto _ = MakeGuard([&]() { m_Stats.TotalExecutionTimeUs += ExecutionTimer.GetElapsedTimeUs(); });
- IoBuffer Payload = Query.GetBuffer().AsIoBuffer();
- Payload.SetContentType(ZenContentType::kCbObject);
- JupiterResult ListResult = m_Session.ListBuilds(m_Namespace, m_Bucket, Payload);
+ Stopwatch ExecutionTimer;
+ auto _ = MakeGuard([&]() { m_Stats.TotalExecutionTimeUs += ExecutionTimer.GetElapsedTimeUs(); });
+ JupiterResult ListResult = m_Session.ListBuilds(m_Namespace, m_Bucket, JsonQuery);
AddStatistic(ListResult);
if (!ListResult.Success)
{
diff --git a/src/zenremotestore/include/zenremotestore/builds/buildstorage.h b/src/zenremotestore/include/zenremotestore/builds/buildstorage.h
index 4b7e54d85..85dabc59f 100644
--- a/src/zenremotestore/include/zenremotestore/builds/buildstorage.h
+++ b/src/zenremotestore/include/zenremotestore/builds/buildstorage.h
@@ -34,7 +34,7 @@ public:
virtual ~BuildStorageBase() {}
virtual CbObject ListNamespaces(bool bRecursive = false) = 0;
- virtual CbObject ListBuilds(CbObject Query) = 0;
+ virtual CbObject ListBuilds(std::string_view JsonQuery) = 0;
virtual CbObject PutBuild(const Oid& BuildId, const CbObject& MetaData) = 0;
virtual CbObject GetBuild(const Oid& BuildId) = 0;
virtual void FinalizeBuild(const Oid& BuildId) = 0;
diff --git a/src/zenremotestore/include/zenremotestore/jupiter/jupitersession.h b/src/zenremotestore/include/zenremotestore/jupiter/jupitersession.h
index 15077376c..eaf6962fd 100644
--- a/src/zenremotestore/include/zenremotestore/jupiter/jupitersession.h
+++ b/src/zenremotestore/include/zenremotestore/jupiter/jupitersession.h
@@ -110,7 +110,7 @@ public:
JupiterResult ListBuildNamespaces();
JupiterResult ListBuildBuckets(std::string_view Namespace);
- JupiterResult ListBuilds(std::string_view Namespace, std::string_view BucketId, const IoBuffer& Payload);
+ JupiterResult ListBuilds(std::string_view Namespace, std::string_view BucketId, std::string_view JsonQuery);
JupiterResult PutBuild(std::string_view Namespace, std::string_view BucketId, const Oid& BuildId, const IoBuffer& Payload);
JupiterResult GetBuild(std::string_view Namespace, std::string_view BucketId, const Oid& BuildId);
JupiterResult FinalizeBuild(std::string_view Namespace, std::string_view BucketId, const Oid& BuildId);
diff --git a/src/zenremotestore/jupiter/jupitersession.cpp b/src/zenremotestore/jupiter/jupitersession.cpp
index dd0e5ad1f..1bc6564ce 100644
--- a/src/zenremotestore/jupiter/jupitersession.cpp
+++ b/src/zenremotestore/jupiter/jupitersession.cpp
@@ -430,9 +430,10 @@ JupiterSession::ListBuildBuckets(std::string_view Namespace)
}
JupiterResult
-JupiterSession::ListBuilds(std::string_view Namespace, std::string_view BucketId, const IoBuffer& Payload)
+JupiterSession::ListBuilds(std::string_view Namespace, std::string_view BucketId, std::string_view JsonQuery)
{
- ZEN_ASSERT(Payload.GetContentType() == ZenContentType::kCbObject);
+ IoBuffer Payload(IoBuffer::Wrap, JsonQuery.data(), JsonQuery.size());
+ Payload.SetContentType(ZenContentType::kJSON);
std::string OptionalBucketPath = BucketId.empty() ? "" : fmt::format("/{}", BucketId);
HttpClient::Response Response = m_HttpClient.Post(fmt::format("/api/v2/builds/{}{}/search", Namespace, OptionalBucketPath),
Payload,