slapos.core:a922271230833151473446245fca55c9718643d3 commitshttps://lab.nexedi.com/nexedi/slapos.core/-/commits/a922271230833151473446245fca55c9718643d32018-04-04T20:01:22+02:00https://lab.nexedi.com/nexedi/slapos.core/-/commit/a922271230833151473446245fca55c9718643d3slapos_[jio,crm,rss_style]: Include RSS for Critical Tickets.2018-04-04T20:01:22+02:00Rafael Monneratrafael@nexedi.com
This will allow the user use this dedicated feed for build some push notification or something similar.https://lab.nexedi.com/nexedi/slapos.core/-/commit/632ab39b80e20c95023e8a3878cdeed56ce2aefaslapos_jio: Set selection_url for the 'modules' listboxes.2018-04-04T20:01:22+02:00Rafael Monneratrafael@nexedi.comhttps://lab.nexedi.com/nexedi/slapos.core/-/commit/054b226a0dd1d588990ec3bdbb14316e05af6d5fslapos_jio: Fix selection_url on Ticket_view2018-04-04T20:01:21+02:00Rafael Monneratrafael@nexedi.comhttps://lab.nexedi.com/nexedi/slapos.core/-/commit/462b148cd70cba859d93496a445b855e80435077slapos_jio: Fix start/stop hosting subscription ui.2018-04-04T20:01:21+02:00Rafael Monneratrafael@nexedi.comhttps://lab.nexedi.com/nexedi/slapos.core/-/commit/e85fc201fa957c3824d5c5d1248137810e3b9b4cslapos_erp5: The default frontend should use lab.node.vifib.com so it can sho...2018-04-04T20:01:21+02:00Rafael Monneratrafael@nexedi.comhttps://lab.nexedi.com/nexedi/slapos.core/-/commit/dee343f38b783279e46bfe3406a3be894de7196bslapos_jio: after activate the login come back to WebSite and not to the portal.2018-04-04T20:01:21+02:00Rafael Monneratrafael@nexedi.comhttps://lab.nexedi.com/nexedi/slapos.core/-/commit/ccc4e9afa5f42ae9b28ae442c499347ec9a1ab29changes: Update for dont-leak-fd patch (2f5ade0a)2018-04-04T11:48:02+03:00Kirill Smelkovkirr@nexedi.comhttps://lab.nexedi.com/nexedi/slapos.core/-/commit/2f5ade0a5bb61623ceecc1115349430bde47f149slapgrid: Do not leak file descriptors to subprocesses when running 'node sof...2018-04-04T10:44:50+02:00Kirill Smelkovkirr@nexedi.com
Some context: I'm trying to build Go 1.10 under slapos and get failures
like:
ok os 0.782s
PASS
testing: can't write /tmp/go-build511454695/b682/testlog.txt: write /tmp/go-build511454695/b682/testlog.txt: broken pipe
FAIL os/exec 0.947s
...
ok cmd/vet/internal/cfg 0.002s
2018/04/03 18:13:29 Failed: exit status 1
golang1.10: Command failed with exit code 1: cd src && ls -l /proc/self/fd && ./all.bash && cp -alf .. /srv/slapgrid/slappart5/srv/runner/software/099a7368550e95d120639cb03b6d47c8/parts/golang1.10
golang1.10: Compilation error. The package is left as is at /srv/slapgrid/slappart5/srv/runner/software/099a7368550e95d120639cb03b6d47c8/parts/golang1.10__compile__/go where you can inspect what went wrong
While:
Installing golang1.10.
Error: System error
This was traced to <a href="https://github.com/golang/go/issues/24285" rel="nofollow noreferrer noopener" target="_blank">https://github.com/golang/go/issues/24285</a>, which in turn was
traced by me to the fact that golang os/exec tests close all file descriptors >
4 assuming that only stdin, stdout, stderr, epoll and testlog file descriptors
are there:
<a href="https://github.com/golang/go/blob/26e0e8a840/src/os/exec/exec_test.go#L402" rel="nofollow noreferrer noopener" target="_blank">https://github.com/golang/go/blob/26e0e8a840/src/os/exec/exec_test.go#L402</a>
<a href="https://github.com/golang/go/blob/26e0e8a840/src/os/exec/exec_test.go#L415" rel="nofollow noreferrer noopener" target="_blank">https://github.com/golang/go/blob/26e0e8a840/src/os/exec/exec_test.go#L415</a>
However when go build is run under slapos it starts with the following
descriptors inherited in the environment:
lr-x------ 1 slapuser5 slapuser5 64 Apr 3 17:57 0 -> pipe:[2969903608]
l-wx------ 1 slapuser5 slapuser5 64 Apr 3 17:57 1 -> pipe:[2969903609]
l-wx------ 1 slapuser5 slapuser5 64 Apr 3 17:57 2 -> pipe:[2969903609]
l-wx------ 1 slapuser5 slapuser5 64 Apr 3 17:57 3 -> /srv/slapgrid/slappart5/srv/runner/software.log
i.e. the file descriptor for software.log (under `slapos node software`) is
passed opened to spawned buildout commands -> and oops - go build failure.
I'm not saying go behaviour is correct. However for slapos it is also not good
to leak e.g. log file descriptors to spawned processes (e.g. what if spawned
child writes there by mistake?).
Since fixing on Go side is not very easy, because it will probably require
non-small testing infrastructure refactoring, I decided to fix on SlapOS side,
because it is a) easier, and b) correct & good to do in any way.
----
To fix we just pass close_fds=True to subprocess.Popen run from under
SlapPopen, which means that popen will close all file descriptors besides
stdin, stdout & stderr for child. close_fds default is already True for python3
<a href="https://www.python.org/dev/peps/pep-0433/#subprocess-close" rel="nofollow noreferrer noopener" target="_blank">https://www.python.org/dev/peps/pep-0433/#subprocess-close</a>
for the reason that it is frequent mistake for programmers to not leak file
descriptors to spawned processes.
However on python2, which we are still using, close_fds default is False.
So let's fix the default on our side.
/reviewed-by <a href="/jerome" data-user="9" data-reference-type="user" data-container="body" data-placement="top" data-html="true" class="gfm gfm-project_member" title="Jérome Perrin">@jerome</a>, <a href="/rafael" data-user="11" data-reference-type="user" data-container="body" data-placement="top" data-html="true" class="gfm gfm-project_member" title="Rafael Monnerat">@rafael</a>
/reviewed-on <a href="https://lab.nexedi.com/nexedi/slapos.core/merge_requests/42" data-original="https://lab.nexedi.com/nexedi/slapos.core/merge_requests/42" data-link="false" data-link-reference="true" data-project="77" data-merge-request="1967" data-project-path="nexedi/slapos.core" data-iid="42" data-mr-title="slapgrid: Do not leak file descriptors to subprocesses when running 'node software'" data-reference-type="merge_request" data-container="body" data-placement="top" data-html="true" title="" class="gfm gfm-merge_request">!42</a>https://lab.nexedi.com/nexedi/slapos.core/-/commit/66847322d3202d085dd38811ea53d4dd54af5c4agrid: do not hide `$USER` when running buildout2018-04-04T02:06:31+02:00Jérome Perrinjerome@nexedi.com
Hiding such environment variable prevent easy access to the user
owning the software or the user owning the instance.
Some instances needs to have the actual username of the instance in their
config files and some softwares needs access to the username of user
building the software. This is - in theory - easy to do in zc.buildout
thanks to <a href="https://collective.github.io/collective.recipe.grp/" rel="nofollow noreferrer noopener" target="_blank">https://collective.github.io/collective.recipe.grp/</a> , but the
way slapos run buildout with some environment variables hidden made it
not possible.
Fixes [#20180402-716ACB](<a href="https://nexedi.erp5.net/bug_module/20180402-716ACB/" rel="nofollow noreferrer noopener" target="_blank">https://nexedi.erp5.net/bug_module/20180402-716ACB/</a>)
/reviewed-on <a href="https://lab.nexedi.com/nexedi/slapos.core/merge_requests/41" data-original="https://lab.nexedi.com/nexedi/slapos.core/merge_requests/41" data-link="false" data-link-reference="true" data-project="77" data-merge-request="1960" data-project-path="nexedi/slapos.core" data-iid="41" data-mr-title="grid: do not hide `$USER` when running buildout" data-reference-type="merge_request" data-container="body" data-placement="top" data-html="true" title="" class="gfm gfm-merge_request">!41</a>https://lab.nexedi.com/nexedi/slapos.core/-/commit/251c0990f9e1b399726d915fa9ebd6a1ed4bf22eRelease 1.4.62018-03-29T16:59:09+02:00Alain Takoudjoualain.takoudjou@nexedi.comhttps://lab.nexedi.com/nexedi/slapos.core/-/commit/c9edde4589bf6843ed02c3844f443deee29d9d0fslapgrid: send partition state if access status is None2018-03-29T15:52:09+02:00Alain Takoudjoualain.takoudjou@nexedi.comhttps://lab.nexedi.com/nexedi/slapos.core/-/commit/0b479327610f867328b9959172385d7795ae9bc4grid.promise: return previous execution result if promise is skipped because ...2018-03-29T14:47:09+02:00Alain Takoudjoualain.takoudjou@nexedi.comhttps://lab.nexedi.com/nexedi/slapos.core/-/commit/fbe6c179bcb69f05a4e5a7f860298b673d7a44ddslapTool: fix test after previous changes on access status2018-03-29T11:16:55+02:00Alain Takoudjoualain.takoudjou@nexedi.comhttps://lab.nexedi.com/nexedi/slapos.core/-/commit/bcd8c217b3e403179fac8a65c7e03cb2d7addc84grid.promise: add the promise name when raising PromiseError2018-03-28T18:52:43+02:00Alain Takoudjoualain.takoudjou@nexedi.comhttps://lab.nexedi.com/nexedi/slapos.core/-/commit/2f76fd2899a650f981410ae21fa9e1c516a14f1agrid.promise: fix bad owner on promise result folder when running promise2018-03-28T18:33:30+02:00Alain Takoudjoualain.takoudjou@nexedi.comhttps://lab.nexedi.com/nexedi/slapos.core/-/commit/5e0344c845f286b567c904053a39d4a71ae8bc84slaptool: also send computer partition AccessStatus information2018-03-28T18:11:19+02:00Alain Takoudjoualain.takoudjou@nexedi.comhttps://lab.nexedi.com/nexedi/slapos.core/-/commit/bce8bcb98f855d67c107bed1a97ef67d5611ddf8slapgrid: update instance access status when checking promise anomaly2018-03-28T18:11:19+02:00Alain Takoudjoualain.takoudjou@nexedi.comhttps://lab.nexedi.com/nexedi/slapos.core/-/commit/6071d38440505a0bbb37cd8cf62651244190622adocumentation: Small update on the documentation.2018-03-28T16:19:05+02:00Rafael Monneratrafael@nexedi.comhttps://lab.nexedi.com/nexedi/slapos.core/-/commit/c66aabc23a336090997a0fa4a25735bbadfdf0dedocumentation: Remove rest.rst from documentation, as the information is outd...2018-03-28T16:18:18+02:00Rafael Monneratrafael@nexedi.comhttps://lab.nexedi.com/nexedi/slapos.core/-/commit/d987f59e067b67030254ea7dec6a88965e9ca240slapos_jio: Missing script.2018-03-28T04:59:58+02:00Rafael Monneratrafael@nexedi.comhttps://lab.nexedi.com/nexedi/slapos.core/-/commit/3fb609ec88757aed8f4a770cfc5026ac0ac9d42aslapos_jio: Fix parameter form for selecting right schema for the software type.2018-03-27T16:51:13+02:00Rafael Monneratrafael@nexedi.comhttps://lab.nexedi.com/nexedi/slapos.core/-/commit/dda7b27ebd0ed7b05dcbc132819ae83125ed6390slapos_jio: Include return (selection_url) on start/stop/destroy hosting subs...2018-03-27T16:51:13+02:00Rafael Monneratrafael@nexedi.comhttps://lab.nexedi.com/nexedi/slapos.core/-/commit/44b63122d1c8d98c535e76aec5c3ee7c0f046755slapos_jio: Allow Intent API request specific Software Release (and not the l...2018-03-27T16:51:13+02:00Rafael Monneratrafael@nexedi.comhttps://lab.nexedi.com/nexedi/slapos.core/-/commit/312f151dcc0b72f25e0a08eff9eef0f3e908e960slapos_jio: Fix typo on "if" condition.2018-03-27T16:51:13+02:00Rafael Monneratrafael@nexedi.comhttps://lab.nexedi.com/nexedi/slapos.core/-/commit/affb6f3bb34a81c70143aefdf7b1ac29fb74997fslapos_jio: Fix rendering form for Slave/Shared cases.2018-03-27T16:51:12+02:00Rafael Monneratrafael@nexedi.comhttps://lab.nexedi.com/nexedi/slapos.core/-/commit/eab0f1d48acb998119bd6e2f7524236bf62763afslapos_web_deploy: Install mitogen to speed up deployment.2018-03-27T16:51:12+02:00Rafael Monneratrafael@nexedi.com
Authored by "Hugo Ricateau"https://lab.nexedi.com/nexedi/slapos.core/-/commit/035f2a77c12481c7942eacba2c08ff1b5c2bd09cslapos_cloud: Ignore more types on afterClone2018-03-27T16:51:12+02:00Rafael Monneratrafael@nexedi.comhttps://lab.nexedi.com/nexedi/slapos.core/-/commit/4fc46f86222d0d96692604edfa23c162d0502096Release 1.4.52018-03-22T12:13:43+01:00Alain Takoudjoualain.takoudjou@nexedi.comhttps://lab.nexedi.com/nexedi/slapos.core/-/commit/759b5088d7d933e31cc648c9123896dc00c10d40slapos.collect: allow connect without call boostrap, set timeout option2018-03-19T11:58:25+01:00Alain Takoudjoualain.takoudjou@nexedi.comhttps://lab.nexedi.com/nexedi/slapos.core/-/commit/62627b23e3f28cf1f5b0464d680a0c3aeb851f33slapgrid: remove old promise checker implementation2018-03-19T11:58:25+01:00Alain Takoudjoualain.takoudjou@nexedi.comhttps://lab.nexedi.com/nexedi/slapos.core/-/commit/f7eadb261c233dc24c63a24023b0d6418a65afcfgrid.promise: implement a new promise launcher in slapgrid2018-03-19T11:58:25+01:00Alain Takoudjoualain.takoudjou@nexedi.com
python promises can define sense, test and anomaly method.
test method will be called by slapgrid or when no bang is needed for the promise anomaly method is
called when a promise failure required to bang the master, anomaly method can be optional but it's not the case for test method.
Slapgrid always run promises and save the result in .slapgrid/promise/result in a JSON format. The result will be used later by monitor
When a partition is correctly deployed, slapgrid will only run promise anomaly and will bang if there is an error and if the failed promise can bang
check promise anomaly when partition is upto datehttps://lab.nexedi.com/nexedi/slapos.core/-/commit/65c7a06d98dede41f0e5710043efa512c4821e86slapos_jio: Include missing html/js/css for the trial request API2018-03-16T13:52:26+01:00Rafael Monneratrafael@nexedi.com
Sort paths on the template_keep_last_workflow_history_only_path_list.https://lab.nexedi.com/nexedi/slapos.core/-/commit/a375f0f61feb297140741e36a8acfa69e3a53078slapos_trial_request: Include missing module2018-03-16T12:30:19+01:00Rafael Monneratrafael@nexedi.comhttps://lab.nexedi.com/nexedi/slapos.core/-/commit/c9afdccbaacb119501031d981f8ad71ead539280slapos_jio: Include Free Trial Section to SlapOS Master website.2018-03-16T09:27:53+01:00Rafael Monneratrafael@nexedi.comhttps://lab.nexedi.com/nexedi/slapos.core/-/commit/3726970df729facaa209bf93a916399959238143slapos_trial_request: Add missing TrialCondition property sheet2018-03-16T09:27:52+01:00Rafael Monneratrafael@nexedi.comhttps://lab.nexedi.com/nexedi/slapos.core/-/commit/9f0fb1c8f6234d2f7915a31f78bc3c2e0369c0c3slapos_trial_request: Implement Trial Condition and rework Trial Request Crea...2018-03-16T09:27:52+01:00Rafael Monneratrafael@nexedi.com
Reimplement the Creation of Trial Request to be compatible with renderjs/jio approach. Use Trial Condition for define what are the trials available to be requested.https://lab.nexedi.com/nexedi/slapos.core/-/commit/82fc3cdacd2114d5dd5ffa0c5cc28249a6588a07slapos_erp5: Include default Software Releases for Frontend & Re6st2018-03-14T09:47:23+01:00Rafael Monneratrafael@nexedi.comhttps://lab.nexedi.com/nexedi/slapos.core/-/commit/4c1f81ffb6b34324b7b59134755b028684b6db00slapos_erp5: Include default initial products for frontend and re6st2018-03-14T09:47:23+01:00Rafael Monneratrafael@nexedi.com
On the core of SlapOS for a full autonomous deployment, it is required frontend and re6st normally. Include initial products for make easy the user to deploy it.https://lab.nexedi.com/nexedi/slapos.core/-/commit/4c0ac840773563f990d598b2d263ba08a1f7817cslapos_jio: Patch ERP5Site_activeLogin to be compliant with renderjs2018-03-14T09:47:23+01:00Rafael Monneratrafael@nexedi.comhttps://lab.nexedi.com/nexedi/slapos.core/-/commit/edadcb6c25dbd575a3939911558e43c0e203de08slapos_jio: Drop unused code2018-03-14T09:47:23+01:00Rafael Monneratrafael@nexedi.com