service_internal_mono.c
d:\build\mapserver-buildkit-2017\zoo-project-prototype-v0\zoo-kernel\service.h(66): warning C4244: '=': conversion from '__time64_t' to 'long', possible loss of data
service_internal_mono.c(176): error C2664: 'maps *mapsFromZMaps(MonoDomain *,MonoClass **,MonoMethod **,MonoObject *)': cannot convert argument 4 from 'void *' to 'MonoObject *'
service_internal_mono.c(176): note: Conversion from 'void*' to pointer to non-'void' requires an explicit cast
service_internal_mono.c(181): error C2664: 'maps *mapsFromZMaps(MonoDomain *,MonoClass **,MonoMethod **,MonoObject *)': cannot convert argument 4 from 'void *' to 'MonoObject *'
service_internal_mono.c(181): note: Conversion from 'void*' to pointer to non-'void' requires an explicit cast
service_internal_mono.c(290): error C2440: 'initializing': cannot convert from 'MonoString *' to 'MonoObject *'
service_internal_mono.c(290): note: Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
service_internal_mono.c(291): error C2664: 'char *mono_string_to_utf8(MonoString *)': cannot convert argument 1 from 'MonoObject *' to 'MonoString *'
service_internal_mono.c(291): note: Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
service_internal_mono.c(294): error C2440: 'initializing': cannot convert from 'MonoString *' to 'MonoObject *'
service_internal_mono.c(294): note: Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
service_internal_mono.c(331): error C2440: 'initializing': cannot convert from 'MonoString *' to 'MonoObject *'
service_internal_mono.c(331): note: Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
service_internal_mono.c(332): error C2664: 'char *mono_string_to_utf8(MonoString *)': cannot convert argument 1 from 'MonoObject *' to 'MonoString *'
service_internal_mono.c(332): note: Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
service_internal_mono.c(335): error C2440: 'initializing': cannot convert from 'MonoString *' to 'MonoObject *'
service_internal_mono.c(335): note: Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
service_internal_mono.c(336): error C2664: 'char *mono_string_to_utf8(MonoString *)': cannot convert argument 1 from 'MonoObject *' to 'MonoString *'
service_internal_mono.c(336): note: Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
service_internal_mono.c(352): error C2664: 'char *mono_string_to_utf8(MonoString *)': cannot convert argument 1 from 'const char *' to 'MonoString *'
service_internal_mono.c(352): note: Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
service_internal_mono.c(352): error C2660: 'mono_string_new': function does not take 1 arguments
D:\build\mapserver-buildkit-2017\zoo-project-prototype-v0\..\mono-5.18.0.240/msvc/include\mono/metadata/object.h(146): note: see declaration of 'mono_string_new'
service_internal_mono.c(366): error C2440: 'initializing': cannot convert from 'int *' to 'int'
service_internal_mono.c(366): note: There is no context in which this conversion is possible
service_internal_mono.c(367): error C2446: '>': no conversion from 'int' to 'int *'
service_internal_mono.c(367): note: Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX86\x86\cl.EXE"' : return code '0x2'
Stop.
We used zooproject in a clustered mode. So we have a database backend to share ongoing informations of running services between 2 ZOO-Kernel instances.
When the load on the cluster increases, some requests fails due to databases errors :
ERROR 1: ERROR: duplicate key value violates unique constraint "services_osid_key" DÉTAIL : Key (osid)=(1593003150) already exists. ERROR 1: ERROR: insert or update on table "responses" violates foreign key constraint "responses_uuid_fkey" DÉTAIL : Key (uuid)=(519e1ea2-b481-11ea-917c-005056b8dc20) is not present in table "services".
The osid value calculated by the kernel is not unique
The osid is calculated by the script zoo-project/zoo-kernel/zoo_service_loader.c (line 830) :
sprintf (tmpBuff, "%i", (cpid + ((int) tp.tv_sec + (int) tp.tv_usec)));
In some cases, the PID variation is cancelled by the timestamp variation