Answers.Body: <p>I have tested this and have duplicated the WSOD error.  The error I get in the hhvm log is <code>Fatal error: Cannot access private property Civi\\Core\\Transaction\\Frame::$state</code>  As I am not that familar with HHVM I cannot take it much further.</p>
  
  <p>Jeremy, do you get the same issue with Drupal and CiviCRM?</p>
  
  <p>I have been satisfied with PHP-FPM performance, so while I hate to give things up, that may be the quickest path to getting this to work.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-05-26T20:50:28.890Z
Answers.Text: Yeah I was using WP also and that's the error I got. Don't know Civi or HHVM well enough to want to solve it either. Thanks.
Answers.UserDisplayName: jerclarke
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-05-26T20:21:52.173Z
Answers.LastActivityDate: 2016-05-26T20:21:52.173Z
Answers.UserDisplayName: Kevin Cristiano
Answers.Body: <p>I was able to fix this by editing the file at <code>wp-content/plugins/civicrm/civicrm/Civi/Core/Transaction/Frame.php</code> and commenting out the <code>assert</code> calls that reference <code>$this-&gt;state</code>.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-06-06T16:34:42.970Z
Answers.Text: Dave - can you create an issue at https://issues.civicrm.org and create a PR?  Thanks for working on this
Answers.UserDisplayName: Kevin Cristiano
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-06-06T21:08:44.667Z
Answers.Text: @KevinCristiano - I made the issue at https://issues.civicrm.org/jira/browse/CRM-18766 - I didn't make a PR because I didn't think just blindly deleting code was ideal ;)
Answers.UserDisplayName: Dave Rolsky
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-06-06T21:10:28.663Z
Answers.Text: Understood, I'll take a look there when I can.   Would like to see if we can get HHVM working.
Answers.UserDisplayName: Kevin Cristiano
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-06-07T06:57:27.413Z
Answers.Text: IMHO, this is an HHVM bug. However, at this point, the assertion is not strongly needed, so I would not be -1 on removing the assertion.
Answers.UserDisplayName: Tim Otten
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-06-07T14:59:12.357Z
Answers.Text: @TimOtten: does Civi handle assertions? (i.e. throw an Exception, log?) Any reason we can't replace with: if ($this->state === self::F_NEW) { throw new Exception() ... } ?
Answers.UserDisplayName: bgm
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-06-07T16:04:29.930Z
Answers.Text: Either removing it or replacing with an exception would be OK IMHO. (Functionally, assertions are a bit different because they can be toggled based on sysadmin preference; however, we haven't gotten any reports about assertion failures in 1.5 years since that was added... aside from this issue with how HHVM evaluates `$this`.)
Answers.UserDisplayName: Tim Otten
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-06-06T15:56:41.857Z
Answers.LastActivityDate: 2016-06-06T15:56:41.857Z
Answers.UserDisplayName: Dave Rolsky
Body: <p>We use HHVM rather than PHP-FPM on Nginx because it is way faster and creates far less load per visitor. HHVM is incompatible with certain PHP that PHP-FPM (PHP 5.x) doesn't have a problem with, so apps sometimes need edits to make them work. </p>
  
  <p>In our case, we use Civi inside WordPress. WordPress seems to work fine in HHVM, as does our testing with Drupal so far. </p>
  
  <p>I can't find any references to CiviCRM's compatibility with HHVM. </p>
  
  <p>Has anyone tried it? Gotten it working? Should we give up?</p>
  
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2016-05-25T21:38:00.080Z
Comments.Text: Hi Jeremy,  Great to hear you are using CiviCRM.  I did do a test with CiviCRM and WP-Engine and was able to get it to work.  While it has not been tested (to my knowledge) and I use PHP-FPM on almost all my CiviCRM installs, I know of no reason it should not work.  Kevin
Comments.UserDisplayName: Kevin Cristiano
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2016-05-26T17:37:23.303Z
Comments.Text: Hi Kevin, this seems like an answer, not sure why you made it a comment instead :)
Comments.UserDisplayName: jerclarke
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2016-05-26T17:38:37.443Z
Comments.Text: That said, in our testing Civi was giving consistent WSOD while we had HHVM running, but worked normally once we switch to PHP-FPM only. Could be it affects some setups/mixes of plugins differently from others. Certainly a Drupal+Civi setup would be likely to behave differently from a WordPress+Civi setup.
Comments.UserDisplayName: jerclarke
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2016-05-26T18:13:11.327Z
Comments.Text: It was a comment as I had not tested it.   I'll see if I can get a HHVM test going - I would like to see this configuration tested and working.
Comments.UserDisplayName: Kevin Cristiano
Tags: <wordpress>
Title: Is it possible to run CiviCRM on HHVM
ThreadText: # Is it possible to run CiviCRM on HHVM
  
  (Asked by: username_0 on 2016-05-25)
  
  We use HHVM rather than PHP-FPM on Nginx because it is way faster and creates far less load per visitor. HHVM is incompatible with certain PHP that PHP-FPM (PHP 5.x) doesn't have a problem with, so apps sometimes need edits to make them work.
  
  In our case, we use Civi inside WordPress. WordPress seems to work fine in HHVM, as does our testing with Drupal so far.
  
  I can't find any references to CiviCRM's compatibility with HHVM.
  
  Has anyone tried it? Gotten it working? Should we give up?
  
  **Tags:** wordpress
  
  > **Comments:**
  > **username_1**: Hi Jeremy,  Great to hear you are using CiviCRM.  I did do a test with CiviCRM and WP-Engine and was able to get it to work.  While it has not been tested (to my knowledge) and I use PHP-FPM on almost all my CiviCRM installs, I know of no reason it should not work.  Kevin  
  > **username_0**: Hi Kevin, this seems like an answer, not sure why you made it a comment instead :)  
  > **username_0**: That said, in our testing Civi was giving consistent WSOD while we had HHVM running, but worked normally once we switch to PHP-FPM only. Could be it affects some setups/mixes of plugins differently from others. Certainly a Drupal+Civi setup would be likely to behave differently from a WordPress+Civi setup.  
  > **username_1**: It was a comment as I had not tested it.   I'll see if I can get a HHVM test going - I would like to see this configuration tested and working.  
  
  ---
  
  ## 2 answers
  
  ### Answer by username_1 on 2016-05-26. Score: 2
  
  I have tested this and have duplicated the WSOD error. The error I get in the hhvm log is `Fatal error: Cannot access private property Civi\\Core\\Transaction\\Frame::$state` As I am not that familar with HHVM I cannot take it much further.
  
  Jeremy, do you get the same issue with Drupal and CiviCRM?
  
  I have been satisfied with PHP-FPM performance, so while I hate to give things up, that may be the quickest path to getting this to work.
  
  > **Comments:**
  > **username_0**: Yeah I was using WP also and that's the error I got. Don't know Civi or HHVM well enough to want to solve it either. Thanks.  
  
  ---
  
  ### Answer by username_2 on 2016-06-06. Score: 0
  
  I was able to fix this by editing the file at `wp-content/plugins/civicrm/civicrm/Civi/Core/Transaction/Frame.php` and commenting out the `assert` calls that reference `$this->state`.
  
  > **Comments:**
  > **username_1**: Dave - can you create an issue at https://issues.civicrm.org and create a PR?  Thanks for working on this  
  > **username_2**: @KevinCristiano - I made the issue at https://issues.civicrm.org/jira/browse/CRM-18766 - I didn't make a PR because I didn't think just blindly deleting code was ideal ;)  
  > **username_1**: Understood, I'll take a look there when I can.   Would like to see if we can get HHVM working.  
  > **username_3**: IMHO, this is an HHVM bug. However, at this point, the assertion is not strongly needed, so I would not be -1 on removing the assertion.  
  > **username_4**: @TimOtten: does Civi handle assertions? (i.e. throw an Exception, log?) Any reason we can't replace with: if ($this->state === self::F_NEW) { throw new Exception() ... } ?  
  > **username_3**: Either removing it or replacing with an exception would be OK IMHO. (Functionally, assertions are a bit different because they can be toggled based on sysadmin preference; however, we haven't gotten any reports about assertion failures in 1.5 years since that was added... aside from this issue with how HHVM evaluates `$this`.)  
  
  ---
  
  