opengris-scaler 1.12.8__cp312-cp312-manylinux_2_28_x86_64.whl → 1.12.11__cp312-cp312-manylinux_2_28_x86_64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of opengris-scaler might be problematic. Click here for more details.

@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: opengris-scaler
3
- Version: 1.12.8
3
+ Version: 1.12.11
4
4
  Summary: OpenGRIS Scaler Distribution Framework
5
5
  Author-Email: Citi <opensource@citi.com>
6
6
  License: Apache 2.0
@@ -3,7 +3,7 @@ opengris_scaler.libs/libkj-1-094aa318.1.0.so,sha256=dRbFbTaca-2vf1SS5LDL3WNfPzoE
3
3
  scaler/CMakeLists.txt,sha256=60rkhpiwy0F-DSsRX_6nRrjYQvQ1Jp9mGp8fZsi006k,305
4
4
  scaler/__init__.py,sha256=nZU5QZ9oW2YIaGwm3-r-6dfmirTVzZpDPDNtX-ITCV4,513
5
5
  scaler/about.py,sha256=OBcfSvHO0P3mWaa2Ci4WEOTbH7is-3uYymScxgZPxyg,161
6
- scaler/version.txt,sha256=ztdTg8VJxMY0ZJakUwlJTlvyFTAyK5iQgDBH6e22UvU,7
6
+ scaler/version.txt,sha256=dgBbQZNIXruiohSPg29gCKKXpQryljOpkAJy28qkWPs,8
7
7
  scaler/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
8
  scaler/client/client.py,sha256=uyYVNYhLaX3H-Aqecf-yHSqvkKnWeDzpTr2atNUUv0E,24373
9
9
  scaler/client/future.py,sha256=fOl5g4Is4E5jtvO0kmRk4uUs_eUjSjMmyniYhWMAH4w,10041
@@ -43,7 +43,7 @@ scaler/config/types/worker.py,sha256=0pt871QcyQ0_PEDVPxxgnnk3l5_syQA-71V1bhUmf0g
43
43
  scaler/config/types/zmq.py,sha256=0VODax61H-4PxN6rIeWKlMXOHiW5elVSt1zc-UF0SL8,2593
44
44
  scaler/entry_points/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
45
45
  scaler/entry_points/cluster.py,sha256=5jPO_fFVe8IiSiAkLhLZ0mXJKXiYUWjvpXjEGlcgwW4,5779
46
- scaler/entry_points/object_storage_server.py,sha256=SEfBC_MdIHdZUxqHhGPb2AHje5dtIEM5uELRdHfFc0o,1316
46
+ scaler/entry_points/object_storage_server.py,sha256=YGDl9-ws0oha1YXXl3gFH660B-IV2o06gCp41zUovdg,1418
47
47
  scaler/entry_points/scheduler.py,sha256=w4Ps1PJX0dnu13xwnnuQFMppkW5Se7cIrcXuJlaWfTA,6025
48
48
  scaler/entry_points/top.py,sha256=pqOPD27HeZrnMvqw4cOF4bvZ-sxgg7zp_Q1v8VtbC4A,9542
49
49
  scaler/entry_points/webui.py,sha256=ypcrE6Lr4rUX_qM0qSsv-dX7kzZiMMWTe5GL-Ol45BI,1067
@@ -108,7 +108,7 @@ scaler/io/ymq/pymod_ymq/python.h,sha256=wb0-WNF4occ4nDphSoUI47_OrfVPP72eLlGC_B59
108
108
  scaler/io/ymq/pymod_ymq/ymq.cpp,sha256=LoxL5ViLK0zyWRSYfmZn0QO-0vLw3xVZrRQJ5rWtc4w,526
109
109
  scaler/io/ymq/pymod_ymq/ymq.h,sha256=juX5DcDMY8rxp5BixFR0NgSlTrLBPog4JdqyQB9NfVI,11936
110
110
  scaler/io/ymq/third_party/concurrentqueue.h,sha256=yN268t8miyojar0bBBPIEjMI3DlHVZci2eufkDDA0FA,152819
111
- scaler/object_storage/CMakeLists.txt,sha256=tmkXHBOe1Gho32n4zEqChZBNlxytRTPnIaJ_hAWHBKg,1665
111
+ scaler/object_storage/CMakeLists.txt,sha256=qexi6sKNGieaRhKkO65kxdaQrKRY-8adYKlvc42aEew,1566
112
112
  scaler/object_storage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
113
113
  scaler/object_storage/constants.h,sha256=b5iTCS6lxWjNlanaknIheKJocTofopVxpcRCuMxiDaI,304
114
114
  scaler/object_storage/defs.h,sha256=hYFhhYdHgkT6C7iFQuG2d-Rexvkr8VvIy1LLGEh8Mrk,286
@@ -118,10 +118,10 @@ scaler/object_storage/message.cpp,sha256=nOaLu--Q1UyRLLHZY_8obHtGEhSnPiSnMSbF5uO
118
118
  scaler/object_storage/message.h,sha256=8KCts7n36jys3PiX09-lPtfa6DjfHI_2hYvled9afG0,4208
119
119
  scaler/object_storage/object_manager.cpp,sha256=cxNv9vOkCC910hlF5JF0mOUwTho8ieA1RJgF_P4e3ho,3083
120
120
  scaler/object_storage/object_manager.h,sha256=TkxICR8_20I-tkHwnMO0VpLWkm24vOEabrmQG6hdnmQ,1696
121
- scaler/object_storage/object_storage_server.cpp,sha256=iAQDDygo-K7DWswC-DPLuVQnCLyMc0wIoXoLLmFexDA,13316
122
- scaler/object_storage/object_storage_server.h,sha256=e3bYcI-OlAovT1mOFID3o2RdMD_bZfhyHcAGIbASzfI,4174
123
- scaler/object_storage/object_storage_server.so,sha256=IFOIrcbLhthuX39JktWgCM4WjjSOmXyjl5mqQd1VmuI,1348873
124
- scaler/object_storage/pymod_object_storage_server.cpp,sha256=Braun1TZrK1QjKErF4ftbCbnDHR8rWVLYgZlJETeGek,3482
121
+ scaler/object_storage/object_storage_server.cpp,sha256=ZiMpLOakguD3p108OVRf0XQmsZtHN5tw5Fs46Pq0nwA,13794
122
+ scaler/object_storage/object_storage_server.h,sha256=11BD3U9NnLcqx8hFXJCnTjvQEgyirj-0LKlTYgtzaXI,4277
123
+ scaler/object_storage/object_storage_server.so,sha256=L_xDZgEuFu4-cAgn-bFM4uCKoKbZ5XhTp9ESWnodoig,1349217
124
+ scaler/object_storage/pymod_object_storage_server.cpp,sha256=D09p81wZF6WnV35I6od3iDhgktV20v82CRR_tQ90ROs,3811
125
125
  scaler/protocol/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
126
126
  scaler/protocol/introduction.md,sha256=G8oRzui4KmSlfFUu70y24tTmDmfEKBkog9tFVUn7G1U,5406
127
127
  scaler/protocol/worker.md,sha256=o2Hh_HCooqrptpXcHGzuzUkO_o4NWOurp7ja-DQi5ho,10503
@@ -222,10 +222,10 @@ scaler/worker_adapter/symphony/message.py,sha256=HOonEASua8e-uwpPVxprjyl1rrYmFJa
222
222
  scaler/worker_adapter/symphony/task_manager.py,sha256=phgx8dtAv-5ynsvsmG4DKcSlENz4b340FE6LDUWyMwo,12139
223
223
  scaler/worker_adapter/symphony/worker.py,sha256=VIDOoqVXbwrjHYN3lghbQpEIuCbVJUgiYsBknrI-0oc,7957
224
224
  scaler/worker_adapter/symphony/worker_adapter.py,sha256=eAAD1O0Uz1pjEdQPPl2fd8kyaF6q-aqCRrg48k1ocUU,5455
225
- opengris_scaler-1.12.8.dist-info/METADATA,sha256=jeFAZLMo6b4s-xyMC1_YXh5oMdQH8c13gHEPN37jeS8,26987
226
- opengris_scaler-1.12.8.dist-info/WHEEL,sha256=4wppc7XK8XyImqEMe_MI_VzPhF-ahW4R81F5uWo_v_U,118
227
- opengris_scaler-1.12.8.dist-info/entry_points.txt,sha256=KROw4kj4Z6p8YuOgpOFt5spHskm87A7Z-fOOffT4tVU,446
228
- opengris_scaler-1.12.8.dist-info/RECORD,,
229
- opengris_scaler-1.12.8.dist-info/licenses/LICENSE,sha256=xudC0jta6OXJkSHiLzzQQU50HIwSo0G97exO280dtR8,11345
230
- opengris_scaler-1.12.8.dist-info/licenses/LICENSE.spdx,sha256=i49Qe6AmXxuvocKyExEFduvdh-NQ5YuxdHs515G8VOQ,225
231
- opengris_scaler-1.12.8.dist-info/licenses/NOTICE,sha256=JUHdG2ssq0nP2QsqPM8X2eJhfJhK_lemIvDBqBRXrMo,286
225
+ opengris_scaler-1.12.11.dist-info/METADATA,sha256=mhpzSRHvrzxLik_hyOcUG2Q6C-WoxnV_wMkSjT1925Y,26988
226
+ opengris_scaler-1.12.11.dist-info/WHEEL,sha256=4wppc7XK8XyImqEMe_MI_VzPhF-ahW4R81F5uWo_v_U,118
227
+ opengris_scaler-1.12.11.dist-info/entry_points.txt,sha256=KROw4kj4Z6p8YuOgpOFt5spHskm87A7Z-fOOffT4tVU,446
228
+ opengris_scaler-1.12.11.dist-info/RECORD,,
229
+ opengris_scaler-1.12.11.dist-info/licenses/LICENSE,sha256=xudC0jta6OXJkSHiLzzQQU50HIwSo0G97exO280dtR8,11345
230
+ opengris_scaler-1.12.11.dist-info/licenses/LICENSE.spdx,sha256=i49Qe6AmXxuvocKyExEFduvdh-NQ5YuxdHs515G8VOQ,225
231
+ opengris_scaler-1.12.11.dist-info/licenses/NOTICE,sha256=JUHdG2ssq0nP2QsqPM8X2eJhfJhK_lemIvDBqBRXrMo,286
@@ -1,5 +1,6 @@
1
1
  import argparse
2
2
  import logging
3
+ import sys
3
4
 
4
5
  from scaler.config.loader import load_config
5
6
  from scaler.config.section.object_storage_server import ObjectStorageServerConfig
@@ -31,11 +32,14 @@ def main():
31
32
 
32
33
  log_format_str, log_level_str, log_paths = get_logger_info(logging.getLogger())
33
34
 
34
- ObjectStorageServer().run(
35
- oss_config.object_storage_address.host,
36
- oss_config.object_storage_address.port,
37
- oss_config.object_storage_address.identity,
38
- log_level_str,
39
- log_format_str,
40
- log_paths,
41
- )
35
+ try:
36
+ ObjectStorageServer().run(
37
+ oss_config.object_storage_address.host,
38
+ oss_config.object_storage_address.port,
39
+ oss_config.object_storage_address.identity,
40
+ log_level_str,
41
+ log_format_str,
42
+ log_paths,
43
+ )
44
+ except KeyboardInterrupt:
45
+ sys.exit(0)
@@ -31,11 +31,9 @@ set_target_properties(py_object_storage_server PROPERTIES
31
31
  )
32
32
 
33
33
  target_link_libraries(py_object_storage_server PRIVATE
34
- $<$<CXX_COMPILER_ID:GNU,Clang>:-Wl,-Bstatic>
35
34
  capnp_objs
36
35
  ymq_objs
37
36
  object_storage_server_objs
38
- $<$<CXX_COMPILER_ID:GNU,Clang>:-Wl,-Bdynamic>
39
37
  CapnProto::capnp
40
38
  CapnProto::kj
41
39
  Python3::Module
@@ -29,7 +29,8 @@ void ObjectStorageServer::run(
29
29
  ObjectStorageServer::Identity identity,
30
30
  std::string log_level,
31
31
  std::string log_format,
32
- std::vector<std::string> log_paths)
32
+ std::vector<std::string> log_paths,
33
+ std::function<bool()> running)
33
34
  {
34
35
  _logger = scaler::ymq::Logger(log_format, std::move(log_paths), scaler::ymq::Logger::stringToLogLevel(log_level));
35
36
 
@@ -44,7 +45,7 @@ void ObjectStorageServer::run(
44
45
 
45
46
  _logger.log(scaler::ymq::Logger::LoggingLevel::info, "ObjectStorageServer: started");
46
47
 
47
- processRequests();
48
+ processRequests(running);
48
49
 
49
50
  _ioContext.removeIOSocket(_ioSocket);
50
51
  } catch (const std::exception& e) {
@@ -117,7 +118,7 @@ void ObjectStorageServer::closeServerReadyFds()
117
118
  }
118
119
  }
119
120
 
120
- void ObjectStorageServer::processRequests()
121
+ void ObjectStorageServer::processRequests(std::function<bool()> running)
121
122
  {
122
123
  using namespace std::chrono_literals;
123
124
  Identity lastMessageIdentity;
@@ -134,7 +135,15 @@ void ObjectStorageServer::processRequests()
134
135
  }
135
136
  });
136
137
 
137
- auto maybeMessage = ymq::syncRecvMessage(_ioSocket);
138
+ auto maybeMessageFuture = ymq::futureRecvMessage(_ioSocket);
139
+ while (maybeMessageFuture.wait_for(100ms) == std::future_status::timeout) {
140
+ if (!running()) {
141
+ _logger.log(scaler::ymq::Logger::LoggingLevel::info, "ObjectStorageServer: stopped by user");
142
+ pendingRequests.clear();
143
+ return;
144
+ }
145
+ }
146
+ auto maybeMessage = maybeMessageFuture.get();
138
147
 
139
148
  if (!maybeMessage) {
140
149
  auto error = maybeMessage.error();
@@ -35,7 +35,8 @@ public:
35
35
  Identity identity = "ObjectStorageServer",
36
36
  std::string log_level = "INFO",
37
37
  std::string log_format = "%(levelname)s: %(message)s",
38
- std::vector<std::string> log_paths = {"/dev/stdout"});
38
+ std::vector<std::string> log_paths = {"/dev/stdout"},
39
+ std::function<bool()> running = []() { return true; });
39
40
 
40
41
  void waitUntilReady();
41
42
 
@@ -78,7 +79,7 @@ private:
78
79
 
79
80
  void closeServerReadyFds();
80
81
 
81
- void processRequests();
82
+ void processRequests(std::function<bool()> stopCondition);
82
83
 
83
84
  void processSetRequest(std::shared_ptr<Client> client, std::pair<ObjectRequestHeader, Bytes> request);
84
85
 
@@ -1,6 +1,8 @@
1
1
  #define PY_SSIZE_T_CLEAN
2
2
  #include <Python.h>
3
+ #include <pyerrors.h>
3
4
 
5
+ #include "scaler/io/ymq/pymod_ymq/gil.h"
4
6
  #include "scaler/object_storage/object_storage_server.h"
5
7
 
6
8
  extern "C" {
@@ -52,10 +54,19 @@ static PyObject* PyObjectStorageServerRun(PyObject* self, PyObject* args)
52
54
  logging_paths.push_back(PyUnicode_AsUTF8(path_obj));
53
55
  }
54
56
 
57
+ auto running = []() -> bool {
58
+ AcquireGIL gil;
59
+ (void)gil;
60
+ return PyErr_CheckSignals() == 0;
61
+ };
62
+
55
63
  ((PyObjectStorageServer*)self)
56
- ->server.run(addr, std::to_string(port), identity, log_level, log_format, std::move(logging_paths));
64
+ ->server.run(
65
+ addr, std::to_string(port), identity, log_level, log_format, std::move(logging_paths), std::move(running));
57
66
 
58
- Py_RETURN_NONE;
67
+ // TODO: Ideally, run should return a bool and we return failure with nullptr.
68
+ return nullptr;
69
+ // Py_RETURN_NONE;
59
70
  }
60
71
 
61
72
  static PyObject* PyObjectStorageServerWaitUntilReady(PyObject* self, [[maybe_unused]] PyObject* args)
scaler/version.txt CHANGED
@@ -1 +1 @@
1
- 1.12.8
1
+ 1.12.11