[MediaWiki-commits] [Gerrit] mediawiki...jobrunner[master]: JobRunnerPipeline: get json_decode() error

2016-09-19 Thread jenkins-bot (Code Review)
jenkins-bot has submitted this change and it was merged.

Change subject: JobRunnerPipeline: get json_decode() error
..


JobRunnerPipeline: get json_decode() error

Some jobs have a status exit of 0 but are still logged as being in
error because the result is not an array.  I suspect that the job yields
an invalid JSON somehow.

Capture the PHP json last error number and message whenever
json_decode() fails (it returns null) and append them to the error
message.

Change-Id: I6b308b54ec8dfd7edfe45e605ebcafcd7cf7c935
---
M src/JobRunnerPipeline.php
1 file changed, 6 insertions(+), 1 deletion(-)

Approvals:
  Aaron Schulz: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/src/JobRunnerPipeline.php b/src/JobRunnerPipeline.php
index be3f203..7952d10 100755
--- a/src/JobRunnerPipeline.php
+++ b/src/JobRunnerPipeline.php
@@ -86,13 +86,18 @@
$this->srvc->incrStats( 
"pop.{$procSlot['type']}.failed.{$host}", $failed );
} else {
// Mention any serious errors that may 
have occured
+   $extraMessage = '';
+   if ( $result === null ) {
+   $extraMessage = 
sprintf("json_decode() error (%s): %s\n",
+  json_last_error(), 
json_last_error_msg());
+   }
$cmd = $procSlot['cmd'];
$error = $procSlot['stderr'] ?: 
$procSlot['stdout'];
if ( strlen( $error ) > 4096 ) { // 
truncate long errors
$error = mb_substr( $error, 0, 
4096 ) . '...';
}
$this->srvc->error( "Runner loop $loop 
process in slot $slot " .
-   "gave status 
'{$status['exitcode']}':\n$cmd\n\t$error" );
+   "gave status 
'{$status['exitcode']}':\n$extraMessage$cmd\n\t$error" );
$this->srvc->incrStats( 
'runner-status.error', 1 );
}
$this->closeRunner( $loop, $slot, $procSlot );

-- 
To view, visit https://gerrit.wikimedia.org/r/311394
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I6b308b54ec8dfd7edfe45e605ebcafcd7cf7c935
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/services/jobrunner
Gerrit-Branch: master
Gerrit-Owner: Hashar 
Gerrit-Reviewer: Aaron Schulz 
Gerrit-Reviewer: jenkins-bot <>

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] mediawiki...jobrunner[master]: JobRunnerPipeline: get json_decode() error

2016-09-19 Thread Hashar (Code Review)
Hashar has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/311394

Change subject: JobRunnerPipeline: get json_decode() error
..

JobRunnerPipeline: get json_decode() error

Some jobs have a status exit of 0 but are still logged as being in
error because the result is not an array.  I suspect that the job yields
an invalid JSON somehow.

Capture the PHP json last error number and message whenever
json_decode() fails (it returns null) and append them to the error
message.

Change-Id: I6b308b54ec8dfd7edfe45e605ebcafcd7cf7c935
---
M src/JobRunnerPipeline.php
1 file changed, 6 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/services/jobrunner 
refs/changes/94/311394/1

diff --git a/src/JobRunnerPipeline.php b/src/JobRunnerPipeline.php
index be3f203..7952d10 100755
--- a/src/JobRunnerPipeline.php
+++ b/src/JobRunnerPipeline.php
@@ -86,13 +86,18 @@
$this->srvc->incrStats( 
"pop.{$procSlot['type']}.failed.{$host}", $failed );
} else {
// Mention any serious errors that may 
have occured
+   $extraMessage = '';
+   if ( $result === null ) {
+   $extraMessage = 
sprintf("json_decode() error (%s): %s\n",
+  json_last_error(), 
json_last_error_msg());
+   }
$cmd = $procSlot['cmd'];
$error = $procSlot['stderr'] ?: 
$procSlot['stdout'];
if ( strlen( $error ) > 4096 ) { // 
truncate long errors
$error = mb_substr( $error, 0, 
4096 ) . '...';
}
$this->srvc->error( "Runner loop $loop 
process in slot $slot " .
-   "gave status 
'{$status['exitcode']}':\n$cmd\n\t$error" );
+   "gave status 
'{$status['exitcode']}':\n$extraMessage$cmd\n\t$error" );
$this->srvc->incrStats( 
'runner-status.error', 1 );
}
$this->closeRunner( $loop, $slot, $procSlot );

-- 
To view, visit https://gerrit.wikimedia.org/r/311394
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I6b308b54ec8dfd7edfe45e605ebcafcd7cf7c935
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/services/jobrunner
Gerrit-Branch: master
Gerrit-Owner: Hashar 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits