{"action":"created","issue":{"url":"https://api.github.com/repos/citusdata/citus/issues/907","repository_url":"https://api.github.com/repos/citusdata/citus","labels_url":"https://api.github.com/repos/citusdata/citus/issues/907/labels{/name}","comments_url":"https://api.github.com/repos/citusdata/citus/issues/907/comments","events_url":"https://api.github.com/repos/citusdata/citus/issues/907/events","html_url":"https://github.com/citusdata/citus/issues/907","id":185051676,"number":907,"title":"A proposal for Improving the Safety of Extension Upgrades","user":{"login":"lithp","id":466333,"avatar_url":"https://avatars.githubusercontent.com/u/466333?v=3","gravatar_id":"","url":"https://api.github.com/users/lithp","html_url":"https://github.com/lithp","followers_url":"https://api.github.com/users/lithp/followers","following_url":"https://api.github.com/users/lithp/following{/other_user}","gists_url":"https://api.github.com/users/lithp/gists{/gist_id}","starred_url":"https://api.github.com/users/lithp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lithp/subscriptions","organizations_url":"https://api.github.com/users/lithp/orgs","repos_url":"https://api.github.com/users/lithp/repos","events_url":"https://api.github.com/users/lithp/events{/privacy}","received_events_url":"https://api.github.com/users/lithp/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":21,"created_at":"2016-10-25T08:33:19Z","updated_at":"2016-10-25T13:24:06Z","closed_at":null,"body":"It being well-known that updates require two parts; loading of the shared-library and updating of the extension; and understanding that these independent operations, despite their independence, require a certain ordering lest Postgres experience some error, or worse, the sufferance of segfault; I do humbly offer it to consideration that this unfortunate potential be reduced through such means as will be briefly outlined.\r\n\r\nFirstly, that the shared-object, the industrious engine of _Magick_ powering Citus, shall be provided some means of determining its version.\r\n\r\nSecondly, Postgres providing no mechanism for the ordering of version numbers, preferring instead to wander through the _Graph_ of versions by means of paths it dynamically constructs, that the _Regex_ `\\d+\\.\\d+-\\d+` (ex. `6.0-13`) shall be strictly enforced and the shared-object taught a total ordering of versions using the obvious piecewise-numeric method.\r\n\r\nThirdly, that the upgrade-scripts, which currently operate much like Goethe's famous broomstick: without any regard for _Expediency_, shall be given such self-awareness as required to prevent the aforementioned segfaults, namely: that they shall refuse to run unless the shared-object reports being of a greater or equal version than the script itself.\r\n\r\nI have duly submitted a request-for-pull, recorded [here](https://github.com/citusdata/citus/pull/903), and hope the remainder of these tasks may be soon addressed."},"comment":{"url":"https://api.github.com/repos/citusdata/citus/issues/comments/256033121","html_url":"https://github.com/citusdata/citus/issues/907#issuecomment-256033121","issue_url":"https://api.github.com/repos/citusdata/citus/issues/907","id":256033121,"user":{"login":"anarazel","id":1598211,"avatar_url":"https://avatars.githubusercontent.com/u/1598211?v=3","gravatar_id":"","url":"https://api.github.com/users/anarazel","html_url":"https://github.com/anarazel","followers_url":"https://api.github.com/users/anarazel/followers","following_url":"https://api.github.com/users/anarazel/following{/other_user}","gists_url":"https://api.github.com/users/anarazel/gists{/gist_id}","starred_url":"https://api.github.com/users/anarazel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/anarazel/subscriptions","organizations_url":"https://api.github.com/users/anarazel/orgs","repos_url":"https://api.github.com/users/anarazel/repos","events_url":"https://api.github.com/users/anarazel/events{/privacy}","received_events_url":"https://api.github.com/users/anarazel/received_events","type":"User","site_admin":false},"created_at":"2016-10-25T13:24:06Z","updated_at":"2016-10-25T13:24:06Z","body":">  It'd e.g. certainly delay this release. \r\n\r\nTo clarify: It'd do so because we'd need to re-add code that populates the worker hash from the file, in InitializeWorkerNodeCache(). And we'd need to keep and test that code until we don't support upgrading from a version that still supported pg_worker_list.conf."}}
{"actor":{"display_login":"anarazel"}}