diff --git a/cmake/init_scripts.cmake b/cmake/init_scripts.cmake index 83f8dd138..1ab095eba 100644 --- a/cmake/init_scripts.cmake +++ b/cmake/init_scripts.cmake @@ -25,6 +25,15 @@ else() endif() configure_file(${CMAKE_SOURCE_DIR}/etc/maxscale.conf.in ${CMAKE_BINARY_DIR}/maxscale.conf @ONLY) + +# The systemd service file +if (CMAKE_BUILD_TYPE MATCHES "(D|d)(E|e)(B|b)(U|u)(G|g)") + # Options enabled only in debug builds (a literal multi-line string) + set(SERVICE_FILE_DEBUG_OPTIONS + "LimitCORE=infinity +ExecStartPost=/bin/sh -c 'prlimit -p $(pidof maxscale) --core=unlimited'") +endif() + configure_file(${CMAKE_SOURCE_DIR}/etc/maxscale.service.in ${CMAKE_BINARY_DIR}/maxscale.service @ONLY) if(PACKAGE) diff --git a/etc/maxscale.service.in b/etc/maxscale.service.in index 62679af4e..ddccbcf85 100644 --- a/etc/maxscale.service.in +++ b/etc/maxscale.service.in @@ -5,6 +5,7 @@ After=network.target [Service] Type=forking Restart=on-abort +@SERVICE_FILE_DEBUG_OPTIONS@ # Make sure /var/run/maxscale exists PermissionsStartOnly=true diff --git a/query_classifier/qc_sqlite/qc_sqlite.cc b/query_classifier/qc_sqlite/qc_sqlite.cc index 57d26af4d..ec23c64bc 100644 --- a/query_classifier/qc_sqlite/qc_sqlite.cc +++ b/query_classifier/qc_sqlite/qc_sqlite.cc @@ -3363,7 +3363,7 @@ extern "C" // 'unsigned int' and not 'uint32_t' because 'uint32_t' is unknown in sqlite3 context. extern void maxscale_set_type_mask(unsigned int type_mask); - extern void maxscaleComment(); + extern int maxscaleComment(); extern int maxscaleKeyword(int token); extern int maxscaleTranslateKeyword(int token); } @@ -4191,14 +4191,18 @@ void maxscaleCreateSequence(Parse* pParse, Token* pDatabase, Token* pTable) QC_EXCEPTION_GUARD(pInfo->maxscaleCreateSequence(pParse, pDatabase, pTable)); } -void maxscaleComment() +int maxscaleComment() { QC_TRACE(); QcSqliteInfo* pInfo = this_thread.pInfo; mxb_assert(pInfo); - QC_EXCEPTION_GUARD(pInfo->maxscaleComment()); + int rc = 0; + + QC_EXCEPTION_GUARD(rc = pInfo->maxscaleComment()); + + return rc; } void maxscaleDeclare(Parse* pParse)