{"action":"created","issue":{"url":"https://api.github.com/repos/stellar/stellar-protocol/issues/37","repository_url":"https://api.github.com/repos/stellar/stellar-protocol","labels_url":"https://api.github.com/repos/stellar/stellar-protocol/issues/37/labels{/name}","comments_url":"https://api.github.com/repos/stellar/stellar-protocol/issues/37/comments","events_url":"https://api.github.com/repos/stellar/stellar-protocol/issues/37/events","html_url":"https://github.com/stellar/stellar-protocol/issues/37","id":236865224,"number":37,"title":"Reconsider txINTERNAL_ERROR result of transaction","user":{"login":"vogel","id":101391,"avatar_url":"https://avatars2.githubusercontent.com/u/101391?v=4","gravatar_id":"","url":"https://api.github.com/users/vogel","html_url":"https://github.com/vogel","followers_url":"https://api.github.com/users/vogel/followers","following_url":"https://api.github.com/users/vogel/following{/other_user}","gists_url":"https://api.github.com/users/vogel/gists{/gist_id}","starred_url":"https://api.github.com/users/vogel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vogel/subscriptions","organizations_url":"https://api.github.com/users/vogel/orgs","repos_url":"https://api.github.com/users/vogel/repos","events_url":"https://api.github.com/users/vogel/events{/privacy}","received_events_url":"https://api.github.com/users/vogel/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":8,"created_at":"2017-06-19T11:48:01Z","updated_at":"2017-09-14T23:49:06Z","closed_at":null,"author_association":"NONE","body":"One of results of executing transaction in stellar protocol is txINTERNAL_ERROR - this means that server has encountered an internal bug that it could not handle (possibly an implementation error). This result is stored in history and is part of input of given ledger hash.\r\n\r\nCurrent stellar protocol has only one implementation - stellar-core by stellar.org, so this is not a big issue. But in future we expect more implementations of protocol. It is hard to expect that they will have the same internal bugs and will return txINTERNAL_ERROR in the same conditions. So it will be possible that some servers will handle given transaction just right and some will return txINTERNAL_ERROR. It will result with different ledger hashes and some nodes will get desynchronized and became unusable.\r\n\r\nFinally, these servers will have to get fixed and their history redownloaded to get in sync with other.\r\n\r\nI think it would be better to just crash in this case (with lots of logged info, of course). In that case only internal bugs will have to get fixed, no history re-downloading will have to be done. And, what is most important, other servers will not have to reimplement that bug in case when servers returning txINTERNAL_ERROR will be a majority."},"comment":{"url":"https://api.github.com/repos/stellar/stellar-protocol/issues/comments/329638979","html_url":"https://github.com/stellar/stellar-protocol/issues/37#issuecomment-329638979","issue_url":"https://api.github.com/repos/stellar/stellar-protocol/issues/37","id":329638979,"user":{"login":"jedmccaleb","id":399067,"avatar_url":"https://avatars1.githubusercontent.com/u/399067?v=4","gravatar_id":"","url":"https://api.github.com/users/jedmccaleb","html_url":"https://github.com/jedmccaleb","followers_url":"https://api.github.com/users/jedmccaleb/followers","following_url":"https://api.github.com/users/jedmccaleb/following{/other_user}","gists_url":"https://api.github.com/users/jedmccaleb/gists{/gist_id}","starred_url":"https://api.github.com/users/jedmccaleb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jedmccaleb/subscriptions","organizations_url":"https://api.github.com/users/jedmccaleb/orgs","repos_url":"https://api.github.com/users/jedmccaleb/repos","events_url":"https://api.github.com/users/jedmccaleb/events{/privacy}","received_events_url":"https://api.github.com/users/jedmccaleb/received_events","type":"User","site_admin":false},"created_at":"2017-09-14T23:49:06Z","updated_at":"2017-09-14T23:49:06Z","author_association":"OWNER","body":"> We can remove txINTERNAL_ERROR from protocol version 9. For previous versions we can just keep a set of transaction hashes that should result in txINTERNAL_ERROR. It would be much easier for other implementation to just get that set than to replicate errors that caused the txINTERNAL_ERROR to happen.\r\n\r\nI don't think we can get rid of the txINTERNAL_ERROR result but we can fix the things that causes txINTERNAL_ERRORs in the past and do the hash of tx thing like you suggest. That is a good idea.\r\n"}}
{"actor":{"display_login":"jedmccaleb"}}