diff options
| author | Liguros - Gitlab CI/CD [master] <gitlab@liguros.net> | 2021-01-17 23:35:33 +0000 |
|---|---|---|
| committer | Liguros - Gitlab CI/CD [master] <gitlab@liguros.net> | 2021-01-17 23:35:33 +0000 |
| commit | 8e8120eabdd28020aa69c7a60505cce2edd20adc (patch) | |
| tree | 061bf0acdc672720e0bc3a2d575f67d25aedb2d8 /dev-db/pgagent/files/save-stderr-jobstep-output.patch | |
| parent | c16790af2c9b4cbc38e565d4311252193ff85484 (diff) | |
| download | baldeagleos-repo-21.1.2.tar.gz baldeagleos-repo-21.1.2.tar.xz baldeagleos-repo-21.1.2.zip | |
Updating liguros repo21.1.2
Diffstat (limited to 'dev-db/pgagent/files/save-stderr-jobstep-output.patch')
| -rw-r--r-- | dev-db/pgagent/files/save-stderr-jobstep-output.patch | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/dev-db/pgagent/files/save-stderr-jobstep-output.patch b/dev-db/pgagent/files/save-stderr-jobstep-output.patch deleted file mode 100644 index 245dbe2764ea..000000000000 --- a/dev-db/pgagent/files/save-stderr-jobstep-output.patch +++ /dev/null @@ -1,79 +0,0 @@ -From 5d2e0d3500a8e144215cdfe10b52cf7415b58046 Mon Sep 17 00:00:00 2001 -From: Ashesh Vashi <ashesh.vashi@enterprisedb.com> -Date: Mon, 25 May 2015 12:37:42 +0530 -Subject: [PATCH] Save the standarad error too along with the standard output - in the jobstep output for the batch jobs. -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -[Worked on by: Mehmet Emin KARAKAŞ, Akshay Joshi] -[Reviewed and improvised by: Sanket Joshi, Ashesh Vashi] ---- - job.cpp | 37 +++++++++++++++++++++++++++++++++++++ - 1 file changed, 37 insertions(+) - -diff --git a/job.cpp b/job.cpp -index 00334ab..c4b39ce 100644 ---- a/job.cpp -+++ b/job.cpp -@@ -186,8 +186,10 @@ int Job::Execute() - - #ifdef __WIN32__ - wxString filename = dirname + wxT("\\") + jobid + wxT("_") + stepid + wxT(".bat"); -+ wxString errorFile = dirname + wxT("\\") + jobid + wxT("_") + stepid + wxT("_error.txt"); - #else - wxString filename = dirname + wxT("/") + jobid + wxT("_") + stepid + wxT(".scr"); -+ wxString errorFile = dirname + wxT("/") + jobid + wxT("_") + stepid + wxT("_error.txt"); - #endif - - // Write the script -@@ -233,6 +235,10 @@ int Job::Execute() - file->Close(); - LogMessage(wxString::Format(_("Executing script file: %s"), filename.c_str()), LOG_DEBUG); - -+ // freopen function is used to redirect output of stream (stderr in our case) -+ // into the specified file. -+ FILE *fpError = freopen(errorFile.mb_str(), "w", stderr); -+ - // Execute the file and capture the output - #ifdef __WIN32__ - // The Windows way -@@ -304,6 +310,37 @@ int Job::Execute() - if (rc == 0) - succeeded = true; - -+ // If output is empty then either script did not return any output -+ // or script threw some error into stderr. -+ // Check script threw some error into stderr -+ if (fpError) -+ { -+ //fclose(fpError); -+ FILE* fpErr = fopen(errorFile.mb_str(), "r"); -+ if (fpErr) -+ { -+ char buffer[4098]; -+ wxString errorMsg = wxEmptyString; -+ while (!feof(fpErr)) -+ { -+ if (fgets(buffer, 4096, fpErr) != NULL) -+ errorMsg += wxString(buffer, wxConvLibc); -+ } -+ -+ if (errorMsg != wxEmptyString) { -+ wxString errmsg = -+ wxString::Format( -+ _("Script Error: \n%s\n"), -+ errorMsg.c_str()); -+ LogMessage(errmsg, LOG_WARNING); -+ output += wxT("\n") + errmsg; -+ } -+ -+ fclose(fpErr); -+ } -+ wxRemoveFile(errorFile); -+ } -+ - // Delete the file/directory. If we fail, don't overwrite the script output in the log, just throw warnings. - if (!wxRemoveFile(filename)) - { |
