Moby Engine install fails on Raspberry Pi 3B

[Enter feedback here]
Moby Engine install fails on Raspberry Pi 3B with the command mentioned in the article.
pi@raspberrypi:~ $ sudo apt-get install moby-engine
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
  containerd.io
Use 'sudo apt autoremove' to remove it.
Suggested packages:
  cgroupfs-mount | cgroup-lite
The following NEW packages will be installed:
  moby-engine
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/33.0 MB of archives.
After this operation, 141 MB of additional disk space will be used.
(Reading database ... 98373 files and directories currently installed.)
Preparing to unpack .../moby-engine_3.0.13+azure-0_armhf.deb ...
Unpacking moby-engine (3.0.13+azure-0) ...
dpkg: error processing archive /var/cache/apt/archives/moby-engine_3.0.13+azure-0_armhf.deb (--unpack):
 trying to overwrite '/usr/bin/containerd', which is also in package containerd.io 1.2.13-2
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
Errors were encountered while processing:
 /var/cache/apt/archives/moby-engine_3.0.13+azure-0_armhf.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: a3b8296d-c923-e990-dcad-35ef2b908a2a
Version Independent ID: 5f85fd7b-f2b6-b3b1-6be2-b6054bb33507
Content: Install Azure IoT Edge on Linux
Content Source: articles/iot-edge/how-to-install-iot-edge-linux.md
Service: iot-edge
GitHub Login: @kgremban
Microsoft Alias: kgremban

@sukesh-ak Thanks for the feedback! Could you please also confirm on the Type of system you are using ? to better understand the platform being used.
Tier 1 [OS, Architecture] ?
Tier 2 [OS, Architecture] ?

Raspberry Pi OS (32 bit) with Raspberry Pi Desktop released on 2020-05-27
Debian version says 10.4

@sukesh-ak Thanks for the Info!
Have you referred to the section on Verify your Linux kernel for Moby compatibility ? to troubleshoot the issue.

This is the output from that set of commands, which doesn't help. Also the the options mentioned in the error fails.
pi@raspberrypi:~ $ curl -sSL https://raw.githubusercontent.com/moby/moby/master/contrib/check-config.sh -o check-config.sh
pi@raspberrypi:~ $ chmod +x check-config.sh
pi@raspberrypi:~ $ ./check-config.sh
warning: /proc/config.gz does not exist, searching other paths for kernel config ...
error: cannot find kernel config
  try running this script again, specifying the kernel config:
    CONFIG=/path/to/kernel/.config ./check-config.sh or ./check-config.sh /path/to/kernel/.config

@sukesh-ak Could you please provide us the official download page of Raspberry Pi OS (32 bit)  Debian 10.4 which you are using ? let me also check from our side.

I used RPI Imager and picked the first one in the options (recommended in the UI)
https://www.raspberrypi.org/documentation/installation/sdxc_formatting.md

@sukesh-ak
Is this the First Option ? please confirm.

Yes that's the option.

@sukesh-ak Thanks for all the info, let me work on it, will get back to you soon.

Appreciate the quick update.

Hello @sukesh-ak We did checked from our end on a fresh start o a device and was able to install the moby engine without any issues.
Could you please run below command to overwrite the package write error.
sudo dpkg -i --force-overwrite /var/cache/apt/archives/moby-engine_3.0.13+azure-0_armhf.deb
Verification steps are shown in below images:
Image 1:

Image 2:

Image 3:

Thank you so much. I think the command you gave fixed it. I could install it after that.
Maybe a good idea to mention the same in the article for troubleshooting steps?
We can close this :)

@sukesh-ak Thank you for the feedback, we will surely consider this troubleshooting step.  👍
We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion.

Hi @SatishBoddu-MSFT
I am still stuck with the service not starting up. I found another reported issue here, where connection string in yaml had spacing issue. So I checked that already to confirm the spacing but no luck.
pi@raspberrypi:~ $ sudo systemctl status iotedge
● iotedge.service - Azure IoT Edge daemon
   Loaded: loaded (/lib/systemd/system/iotedge.service; enabled; vendor preset: enabled)
   Active: inactive (dead) (Result: exit-code) since Wed 2020-07-15 14:23:12 IST; 7s ago
     Docs: man:iotedged(8)
  Process: 4316 ExecStart=/usr/bin/iotedged -c /etc/iotedge/config.yaml (code=exited, status=127)
 Main PID: 4316 (code=exited, status=127)

Jul 15 14:23:12 raspberrypi systemd[1]: iotedge.service: Service RestartSec=100ms expired, scheduling restart.
Jul 15 14:23:12 raspberrypi systemd[1]: iotedge.service: Scheduled restart job, restart counter is at 10.
Jul 15 14:23:12 raspberrypi systemd[1]: Stopped Azure IoT Edge daemon.
Jul 15 14:23:12 raspberrypi systemd[1]: Dependency failed for Azure IoT Edge daemon.
Jul 15 14:23:12 raspberrypi systemd[1]: iotedge.service: Job iotedge.service/start failed with result 'dependency'.

Output of following command attached.

journalctl --no-pager -u iotedge
iotedge-errors.txt

I can re-build/re-install the OS if that helps to reduce time spent on troubleshooting.

I ended up re-building the OS and now the service is working. Will update later if I need anything else.

I ended up re-building the OS and now the service is working. Will update later if I need anything else.

I agree, I too faced such situations where I restarted my work, glad to see that you are now unblocked.


Added template for command docs

Hi team,
Added an empty .md file for command docs based on SET documentation. It is to be used by contributors for auditing and added documentation.
Thanks
Apoorv

Hi @AshwinKul28, Please review this template. All the contributors can use this template for standard documentation.
Thanks,
Apoorv

Thanks a lot, @apoorvyadav1111 for this. This is a robust documentation example that can be followed throughout. Great! Please have a look on couple of thoughts.

Hi @AshwinKul28 , updated the template with examples and more comments. Thanks for your suggestions.

Amazing thanks. one last thought @apoorvyadav1111 , This looks more like a perfect ideal example than a template, shall we have a separate file just for the template having all sections/subsections where users can pick and start adding their content and this in a separate file or top/bottom in template file as an ideal example? I feel the template should be more generalized. wdyt? I'm just thinking from general audience.

Hi @AshwinKul28 . This sounds even better what we have right now. So we can have a sample_doc file which can have all sections (notes, depreciation warnings) etc from different commands as an example. Additionally, We can have a template_doc which is just for structure with no comments and no text.
Please confirm my understanding about the requirements.

Hi @AshwinKul28 , added template and sample separately. Currently, all docs have some deviation from each other which should not be a time consuming task but will have multiple files being affected. Once this is approved, we can fix those headings.
Thanks

Perfect, thanks for the changes @apoorvyadav1111 . LGTM


Add single page for all editorials, and individual pages for each editorial

What's this PR do?
Adds the functionality to build an editorial page for all problems, and individual editorial pages for all problems.
Solves #113
Screenshots
General page for all editorials -->

Page for individual editorials -->

@Vishal1541 @dheeraj135 @aashish-ak

@dheeraj135  made the suggested changes. Should also fix #112 along with #113


A lot of event triggers on scroll inertia moving

druid/druid/base/scroll.lua:246
It would be better to use:
if math.abs(self.position.x - target.x) < EPS or math.abs(self.position.y - target.y) < EPS then

Done in #43


ENH: Add frequency domain seasonal components to UnobservedComponents

Previously, we had implemented the main time domain seasonal component, which
is restrictive when the periodicity is very high or the seasonality can be
more parsimoniously represented by trigonometric terms.
Additionally, we were only able to use a single seasonal component.  This
commit allows for multiple seasonal components in the frequency domain and
for mixing of the two types.
Also

Change offset for regression coefficients when cycle is included.
Cycle is two states regardless of if it is stochastic.  Therefore,
the offset should always be 2 instead of possibly 1 for a deterministic
cycle.

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@91ed779). Click here to learn what that means.
The diff coverage is 88.33%.

@@            Coverage Diff            @@
##             master       #2   +/-   ##
=========================================
  Coverage          ?   79.56%
=========================================
  Files             ?      562
  Lines             ?    83923
  Branches          ?     9582
=========================================
  Hits              ?    66776
  Misses            ?    14949
  Partials          ?     2198

Impacted Files
Coverage Δ

...tatsmodels/tsa/statespace/tests/test_structural.py
96.95% <100%> (ø)

statsmodels/tsa/statespace/structural.py
88.36% <88.13%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 91ed779...9f9cc46. Read the comment docs.


V1.4.0

Relevant: https://github.com/gonuit/heroku-docker-deploy/issues/11#issuecomment-919656801

Hi maintainers!  @gonuit @danthedaniel
Will this version be released soon?
I'm mainly looking at this feature #19 , as this will save a lot of CPU time.

@BNMetrics it's not my repo. I'd recommend forking as that's what my team needed to do.

@gonuit can we get this in?


[CC] Improve widget to select and edit materials in machine setup

Hello all,
I am opening this issue to talk about how to improve the widget to select and edit materials in machine setup.
This idea is to have a more compact widget than we currently have to avoid taking too much vertical space, for example by doing this:

Please let me know if you have any suggestions about this modification.
Best regards,
Emile

Hello Emile, i like your idea. You could also move 'Material' label to the frame title. So the combobox will have additonal horizontal space. BR Sebastian


feat: authorization

The token-based auth has been implemented

## Authorization

To pass authorization you should set the API token to the Authorization header

To set authorisation you should put the API_TOKEN environment variable in the .env file before deploy the app. This token will be used for authorization

The token-based auth has been covered with unit and integration tests
The prettier has been added and configured (some code has beautified fixed by prettier)
The simple CI pipeline has been implemented (run unit-tests and prettier).

Nice, but need to update readme.md about this feature

@Xotabu4 not auth is optional


cspell ci

For some reason cspell doesn't seem to run for every one for the pre-commit hook. Please add as part of our build & test CI.

I think #575 resolved this

#575 is in the CI (on GitHub Actions) this bounty is for it to be handled within the husky pre-commit hook.

#575 is in the CI (on GitHub Actions) this bounty is for it to be handled within the husky pre-commit hook.

I see

/assign

/unassign

any steps to reproduce the issue?

/assign

There must be a balance between if we want to enforce this husky package. I would close this issue as not planned as it is potentially adding complexity to the project and maintainability due to lack of input and requirements && and a possible future resurrection inviting the hunter

Closing as not planned.
Reasons:

Potentially adding complexity
Needs input beyond the actual requirements
Further feedback
It might be re-opened in a future if need it!

I'll need to send some xDAI to both participants because this was my fault for not ensuring that the bounty is valid.
https://gnosisscan.io/tx/0x3162608e9e18f71b4b29b0780904b664d160d0d79b0f761569f0d590b5f16044 @me505
https://gnosisscan.io/tx/0xbb9e74ab8951f5cc45fb38dd1d56f7e04e3c0ba6db98bfbaf58bfe63043d950a @AnakinSkywalkeer


User login create

@utahrim @yokuba @jeder28
User sign in and login will give a session, as well as clearing the session when logging out.

@jeder28 For now, someone that isn't signed in won't see anything. I don't remember if we said we would allow guests to take it... :question:

I'll take it off for now.


Wrap ETH call fails on origin

Describe the bug
ETH bridge reverts on origin.
To Reproduce
Steps to reproduce the behavior:

Go to bridge (e.g. mainnet -> optimism)
Select ETH
Try to bridge it
Reverts on low level ERC20 call

Additional context
Add any other context about the problem here.

Dupe of https://github.com/connext/monorepo/issues/2642


StyleNano removal: Palette system and Sheetlets

This PR is a continuation of a derelict PR, #28356.

My changes from where the previous PR left off
Previous PR's changes
Overall changes you can find here, in the PR. Isn't that neat.
To-do list (ill delete before this is merged)
Design Doc I haven't touched (its out of date now i have a new better one)
codepen for palette colors (cool)

About the PR
Summary

StyleNano is GONE
Minimize hardcoding, colors are now much more consistent
Centralized locations to define colors / resource paths / hardcoding goodness
Actual documentation for UI dev, so people (like me) don't have to stare at UI code for 14 hours before doing anything (WIP).

PROOF THE PR ACTUALLY WORKS: link
This won't break the game I pinky promise
Why / Balance
https://github.com/space-wizards/space-station-14/blob/afc800274caaecf3647db2f04cd0635285eb675b/Content.Client/Stylesheets/StyleNano.cs#L42-L1611
Technical details
This literally just rewrites content-side stylesheets from the ground up.
One thing I feel is important to note if you are going back through my commits, is that I first got the sheetlets working as quick as possible (which was mot quick), and then dis multiple refactor passes to make the code better. The current code is pretty good but probably still a refactor or two away from where I'll be completely happy with it.
Design Decisions

This is really long so uh, click to expand
As anyone who's had the misfortune of editing StyleNano is probably painfully aware of, the main problem with StyleNano is how difficult it is to find anything. Maybe the style classes you want are sitting somewhere in that gargantuan tangle of code, or maybe not.  With this new iteration, I tried to maximize the readability of the structure of the code. Want to know what style classes are available for you to use? Look in StyleClass. Want to know the styles applicable to labels? LabelSheetlet or TextSheetlet. Buttons? ButtonSheetlet.
But what are Sheetlets? Good question person-who-didnt-read-the-original-PR!  This is still how it works, but now the responsibility of chipping in styles to this massive list is spread out among all the sheetlets. They have one method, StyleRule[] GetRules, and all these rules from all the sheetlets are collected up to do in like 30-40ish files what used to be one 1600 line file.
ISheetletConfig is intended to cut down on repeated code by providing shared functionality between the stylesheets. Its literally only used for buttons. Its also used (in my crusade against anything hardcoded) to store resource paths, because it's easier to reference if it's all centralized.
Deviations from Original PR's Direction
The class holding all the style classes, StyleClass was originally named Styleclasses. I think this was a better name. Unfortunately, Controls have a field with the exact same name, meaning to reference Styleclasses, you would have to type out Stylesheets.Redux.Styleclasses.<whatever>. This syntax would be shortened after everything is moved out of Redux but still, annoying. The shorter syntax is nicer. Also as an extra bonus, it's closer to the syntax of something like StyleClassLabelHeading. Just add a dot! That's kinda neat.
class stopped sounding like a real word. Class class class class class. Blegh.
Instead of an array of colors, I made a custom ColorPalette class. This is because when transferring all the styles into Sheetlets, I noticed I basically used the palette in one of three ways, foreground elements (Buttons etc.), background elements, (Panels, etc.), and text. So I represented that in the palette! Just makes code a bit more readable / robust. Also, I just kinda hated that [0] was the brightest and [4] the darkest. It should be the other way around! and what if I want to add more colors? There are more than five shades of any given color!
This does not compromise customizability because any colors can be curly-brace initialized after the fact if you are really motivated.
Also I made a cool shitty codepen to help me pick colors.
What moony originally did in their PR was they had resources scoped / access-locked (which I have kept), and, as a consequence, sheetlets that used a resource would have to be sheet-specific. This included buttons, panels, windows, etc.; things that basically every stylesheet would want, and which would have to be duplicated for every stylesheet. I think the intention behind this is to prevent resources intended for one stylesheet being used unintentionally in another, but honestly, the organization of the resources folder is a mess (a lot of style-generic resources are sitting in Textures/Interface/Nano), and this would lead to a lot of copying resources, which is definitely a maintenance hazard. I could clean it up, but then it could be a NIGHTMARE to merge for downstream forks (probably idk) (also touching the resource folder scares me). The resource-scoping system does allow you to specify multiple scopes to try in order, but that's kinda icky. So! I propose (and have already implemented) the following solution:
GetResourceOr
(and GetTextureOr)
It gets the scoped resource like normal, but if it doesn't exist, falls back to an absolute root. Is it a generic resource that has no business being is Textures/Interface/Nano? I don't care! It can stay there! I really can't be bothered to move it! Now the sheetlet will work with any stylesheet. If the scope happens to exist, it'll use that instead.
This method is kinda clunky but that's good (maybe?) because you want to use it where it counts. If there's a resource that, ideally, every theme should have a unique implementation of, then you would just use GetResource.
Significant Interface Changes

Colors are different (duh)
Tooltips on action menu now is slightly transparent for consistency w/ examine popup
Everything else should pretty much be the same. I'm like 80% sure I transferred everything from StyleNano correctly, as I was pretty methodical with it, but its also entirely possible I forgot something. If anybody notices UI that looks worse than they remember, double check it actually is different (this happened to me several times, some of the UIs are just kinda bad), and pretty please PR the changes (or ask me, and I'll probably do it).
I definitely like messed a couple colors up but whatever
Also anything that previously used StyleSpace now uses SheetSystem which is like StyleSpace but the colors are slightly different

Breaking Changes
StyleNano is gone!!

Style classes defined in StyleNano have been moved either to Content.Client.Stylesheets.Redux.StyleClass or their associated Control.
Any StyleRule additions to StyleNano must be rewritten to conform to the new format (See guide (TODO: LINK GUIDE))
Some unused / redundant style classes were removed. If you happened to be relying on them, either substitute in the appropriate style classes defined in Content.Client.Stylesheets.Redux.StyleClass or create a new Sheetlet (Again, see guide)
If you are planning on creating a new UI, there are new conventions you should follow (Yet again, see guide)
StyleSpace is gone too, but that probably doesn't affect you

Also
square.png has been deleted from Textures/Interface/Nano. This shouldn't have even been used in the first place; StyleBoxFlat exists.
Future work

Allow the user to change the colors
Allow the user to change the primary font.
Syndicate/domain specific stylesheets (because they're no longer a major maintenance hazard)
Reorganization; At this time all new tools, sheets, code, etc. are in Content.Client/Stylesheets/Redux for ease of review / merging
There's still a lot of TODOs left scattered around for hardcoding and stuff
Also palletize margins and stuff?
kill DefaultWindow
Change all admin / sandbox windows to the new theme

Changelog
:cl:

tweak: UI colors have been changed (new palette system)

This PR should not be merged until I have written documentation. For now, I am going to bed.

Oh whoops forgot to commit changes.

you are my hero

legendary

unfathomably blessed PR

I don't even want to think how much time this took 😆

If you're going to continue a derelict PR please give CL and commit credit to the original author.

Oh yeah I should do that.
Also sidenote: I will be busy for the next while so documentation will have to wait a bit. I will write it eventually I didn't spend 3 weeks on this PR for nuthin'.

I am now free and writing documentation. If someone reviewed the PR that would be kinda cool, I think.

oh that uh, wasnt supposed to happen. hm.

Okay, I may need some help to help give Moony commmit credit. I'm decently familiar with git, but I'm not a wizard and this is tricky.
I tried checking out the commit in question, amending it with git commit --amend --author to change the author to moony, and rebasing it back onto the original commit, but that messed everything up because now this PR suddenly had like 1000 commits as github didnt realize those commits werent mine I guess.
Not sure what to do now, that was the one idea I had.

I'll resolve the merge conflicts once someone gives me the go ahead because insert Sisyphus image

Most of the trivial changes have been dealt with, waiting on comments. Also updated the docs PR.
I'll finish this up and merge upstream changes tomorrow.

Okay, I've spent a while going through every single UI I can think of and double-checking every single little thing and everything looks good I think? I caught a few stragglers (as you can see in the commits)
So, fonts. I think adding the engine support for exposing font weight / slant / whatever is a good idea. Currently, I took your suggestion and left NotoFontFamilyStack in there temporarily, and marked it as temporary.
Stuff like font sizes and padding and whatnot is also hard-coded. It's probably fine for now, a lot less terrible than what was hapenning with colors, but this should be standardized at some point.

This definitely should be done with an explicit check instead instead of relying on exceptions to be thrown. That said, I think some of the reflection APIs you'd need are missing from sandbox so you'd need to add those

It currently isn't a dealbreaker honestly, the current system adds a tenth of a second to load times, but I am probably not familiar enough with sandboxing / c# dark magic to implement it properly, so, leaving that unresolved for now.
That should be pretty much all the review dealt with. I thought of a cleaner way of doing what I'm doing with SheetletConfigs with dependency injection, but that should just be refactoring. Unless you have any final comments, it should pretty much be in good shape to merge (after I do that thing).
Anyway, final steps (assuming another round of review doesn't come in):

Move everything out of Redux
Delete todo.md and Stylesheets.md
Make github issues about two unfinished things mentioned above
Get a final list of all the changed style classes and stuff for downstream forks

If ye have any final comments, say them now

Okay, I've spent a while going through every single UI I can think of and double-checking every single little thing and everything looks good I think? I caught a few stragglers (as you can see in the commits)
So, fonts. I think adding the engine support for exposing font weight / slant / whatever is a good idea. Currently, I took your suggestion and left NotoFontFamilyStack in there temporarily, and marked it as temporary.
Stuff like font sizes and padding and whatnot is also hard-coded. It's probably fine for now, a lot less terrible than what was hapenning with colors, but this should be standardized at some point.

This definitely should be done with an explicit check instead instead of relying on exceptions to be thrown. That said, I think some of the reflection APIs you'd need are missing from sandbox so you'd need to add those

It currently isn't a dealbreaker honestly, the current system adds a tenth of a second to load times, but I am probably not familiar enough with sandboxing / c# dark magic to implement it properly, so, leaving that unresolved for now.
That should be pretty much all the review dealt with. I thought of a cleaner way of doing what I'm doing with SheetletConfigs with dependency injection, but that should just be refactoring. Unless you have any final comments, it should pretty much be in good shape to merge (after I do that thing).
Anyway, final steps (assuming another round of review doesn't come in):

Move everything out of Redux
Delete todo.md and Stylesheets.md
Make github issues about two unfinished things mentioned above
Get a final list of all the changed style classes and stuff for downstream forks

If ye have any final comments, say them now

When 😭

next week (tm)

next week (tm)

I'll wait hehehe

Wheeeeen... I don't like nextweek™

😭

I dislike review limbo as much as you guys.
@PJB3005 the people hunger.

I did start reviewing it today, I promise.

I appreciate this is subjective, but I find the automatic pallete for a disabled Button is hard to read. Compare the before and after:

The borders of those buttons are very hard to distinguish from the background they're on - I can't see where "Copy" ends and "Send" begins, for example.
The Button's child Label text is no longer modulated when the button is disabled. That behaviour should be restored, as the bright text is making it less obvious that the button is disabled.

Hm, honestly looking by them side by side too, I like the previous colors of the disabled button better too. I'll definitely tweak this. And do all the other review as soon as I can haha.

Colors have been tweaked, now resembles original more.

Okay! So, I'm pretty sure that should be done. I moved everything out of Redux, nothing major changed, so we should be fine. Updated the breaking changes, we should be pretty much good to merge...
Also, is the size labeler broken? This PR is a large pr, but its being labeled as a medium size one.

PJB has the better sandboxing approach she said that she would push to my branch and also engine font support to add because currently the font implementation is temporary, all the other TODO's should honestly be fine to leave in.


Adjust doctor command format and options

The gitea doctor command is a little weird especially since the recreate-table subcommand.
This PR changes the doctor command to be an empty subcommand and adds gitea doctor check subcommand.
In this subcommand the requested checks are provided as an argument rather than as options.  The logging is also changed so that the doctor.log is not provided by default - instead that will only be created if you set --log-file option. --verbose is provided to output this logging to stdout.
gitea convert is also moved to be a subcommand as gitea doctor convert.
Signed-off-by: Andrew Thornton<EMAIL_ADDRESS>

Need to update version in references.

I guess @zeripath is currently inactive, but you could raise another PR in place of this one.

There are some problems for this PR:

The func init() seems unnecessary, in most cases the Gitea instance doesn't need to print that message, so it wastes CPU and memory
The loop for i, name := range names is fragile. I can understand the purpose is to make the command like "./gitea doctor check list default", but, it introduces strange syntax like "./gitea doctor check all default list"

So I proposed a new one:  Improve "gitea doctor" sub-command and fix "help" commands #26072


Column.dtype

We need such a property, right? Else how do we check that dtypes match?

Yes, it seems clear that that is needed, independent of the question of what the type/shape of a dtype is.


Industrial Nail guns

About the PR

Added a new Nail gun, a .10 calibre device used to nail things in place and pin corpses to walls, all with a satisfying THUNK!
Why / Balance

Do you need to arm the crew during zombies? Are you an aspiring agent for the syndicate?  The Nail gun offers an answer to all of these!
Technical details

Media

TODO

[ ] Finish the PR

Breaking changes

Changelog

:cl:
Added: Added Nail gun - Pin items down, or disable the safeties for an improvised weapon
Added: Added new ammo, .10 cal Nails. Can be reused once more after being fired!

you messed up the CL

Neat, i like the idea, but how will these be used outside of weapons?

By using this on an item, it will be "nailed down" which prevents you from picking it up, useful for things like jugs and important items, or anything you don't want moved, needing to be crowbarred to pry the nails out
It can also be used by cargo as an alternative to welding a crate shut

By using this on an item, it will be "nailed down" which prevents you from picking it up, useful for things like jugs and important items, or anything you don't want moved, needing to be crowbarred to pry the nails out

NAIL THE DISK

Yes.

nail banana peels to floor

Seems balanced, the code isn't screaming at us that it's broken and there's sprites for it in-hand. Don't see why this couldn't be added.

finally, my shitty concept idea of being able to anchor something and then nail it down to double anchor it is realized

I can finally nail down Ian and other pets to their beds! Great addition.

As it stands this is very barely functional, please remember this

how did this piece of shit pass all the checks it crashes on roundstart

because its draft

really liking the trend of giving science more printable weaponry recently, I mean
-Crusher Glaive
-Svalinn Laser Pistol
-Nailgun (you are here)
-Foam Grenades (I mean, we already technically had this, but now we have stuff like razorium foam)

Although, I have to ask, will this be a standard, research-required thing or an autolathe thing? I'm guessing autolathe.

Although, I have to ask, will this be a standard, research-required thing or an autolathe thing? I'm guessing autolathe.

T2 Industrial

Although, I have to ask, will this be a standard, research-required thing or an autolathe thing? I'm guessing autolathe.

T2 Industrial

With advanced tools or it's own separate thing? I would HIGHLY recommend putting it with advanced tools since Industrial Tier 2 is absurdly bloated.


Platform specific path separator

This is breaking package cache generation on xplat. Not sure if I can use System.IO.Path.DirectorySeparatorChar instead though.

cc @NTaylorMullen this should fix the packagecache builds.


setText(String text) not working?

The JSClipboard API contains a method setText(String text), but it doesn't seem to do anything?
Also I can't seem to connect the clipboard with a button without supplying a specific target as well. I would have assumed that this would be possible in conjuncture with the setText method.

My bad, The setText method works as it should after all.


bump version to v0.28, update project github URLs

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

@conda-forge-admin, please rerender


start docs page for #24

docs page for the moment implemented separately at UrbanAnalyst/doc, via rust mdbook.


az repos list not working

This is autogenerated. Please review and update as needed.
Describe the bug
Command Name
az repos list Extension Name: azure-devops. Version: 0.10.0.
Errors:
list index out of range
Traceback (most recent call last):
lib\site-packages\knack\cli.py, ln 233, in invoke
    cmd_result = self.invocation.execute(args)
cli\core\commands\__init__.py, ln 660, in execute
    raise ex
cli\core\commands\__init__.py, ln 723, in _run_jobs_serially
    results.append(self._run_job(expanded_arg, cmd_copy))
...
azext_devops\dev\common\_credentials.py, ln 17, in get_credential
    token = _get_credential(organization)
azext_devops\dev\common\_credentials.py, ln 24, in _get_credential
    key = _get_service_name(organization)
azext_devops\dev\common\_credentials.py, ln 76, in _get_service_name
    return 'azdevops-cli:' + normalize_url_for_key(organization)
azext_devops\dev\common\_credentials.py, ln 85, in normalize_url_for_key
    organization_name = organization_name.split('/')[1]
IndexError: list index out of range

To Reproduce:
Steps to reproduce the behavior. Note that argument values have been redacted, as they may contain sensitive information.

Put any pre-requisite steps here...
az repos list --org {} -p {}

Expected Behavior
Environment Summary
Windows-10-10.0.18362-SP0
Python 3.7.9
Installer: PIP

azure-cli 2.21.0

Extensions:
azure-devops 0.10.0

Additional Context

needed to give fully qualified org name


What's the right way to use useSWRPages with a react-native Flatlist ?

Hi !
I'm trying to use a react-native Flatlist with useSWRPages but i can't make it works, what's the good implementation ?
Thanks for help :)

I had a similar issue recently, because useSWRPages returns components they can not be used with React Native list components without rendering a list per page which make you lose the performance benefits of using those components.

Running into the same issue while trying to use useSWRPages with react-table as useSWRPages is unable to return the data itself.

I'm using react-window + react-window-infinite-loader + swr and here is some buggy behavior. react-window is a virtual list library and react-window-infinite-loader add infinite scroll for it. I use swr for data loading but not working well because react-window-infinite-loader require a loadMoreItem that return a Promise but swr doesn't return anything so I have to use setTimeout hack to let it work.
The useSWRPages does return a data. You need to return an empty <></> from the page component in the useSWRPages hook, and add the empty pages into the parent node to let SWR fetch data.
const { isEmpty, isLoadingMore, isReachingEnd, loadMore, pageCount, pageSWRs, pages } = useSWRPages<
        ProfileIdentifier | null,
        Profile[],
        unknown
    >(
        queryKey,
        ({ offset, withSWR }) => {
            const key: Parameters<typeof fetcher> = [query, offset?.toText()]
            const _ = withSWR(
                // eslint-disable-next-line react-hooks/rules-of-hooks
                useSWR([...key], {
                    suspense: true,
                    fetcher,
                }),
            )
            return React.createElement(React.Fragment)
        },
        (SWR) => { // ...offset
        },
        [queryKey],
    )

    const items = pageSWRs.filter((x) => x).reduce((x, y) => x.concat(y.data), [])
    /// here is the data return by useSWR
    return <>            {pages} // make sure you add the pages even it is empty!
... handling data with virtual list lib
</>

The new pagination API has launched: https://swr.vercel.app/docs/pagination. Feel free to reopen if you are still encountering an issue!


Loss nan for phi-3

When I try to finetune phi-3 (Phi-3-mini-128k-instruct-8bit) I get the same issue I previously had for mixtral with a loss nan
Trainable parameters: 0.042% (1.573M/3750.282M) Loading datasets Training Starting training..., iters: 100 Iter 1: Val loss nan, Val took 61.907s Iter 10: Train loss nan, Learning Rate 1.000e-05, It/sec 0.264, Tokens/sec 530.838, Trained Tokens 20105, Peak mem 16.146 GB

May I ask you if you fine-tune by writing your own code or directly use mlx_lm for fine-tuning? I’ve been recently writing a model file for phi3, perhaps I could help you solve this issue.

May I ask about your specific config file or config settings when fine-tuning with lora? I tried using Phi-3-mini-4k-instruct for lora fine-tuning today, but the loss is

May I ask about your specific config file or config settings when fine-tuning with lora? I tried using Phi-3-mini-4k-instruct for lora fine-tuning today, but the loss is normal.

Could you share your congi  and loss metrics, LORA >  LORA py
Errors out

@kishoretvk Il last update solved the issue


Ansible based operador cant retrieve username that instantiated a crd

Type of Issue
Feature Request
Description
As a new developer of Ansible-based operators, I've noticed that the operator is not able to retrieve the username that instantiated a Custom Resource Definition (CRD). This functionality is crucial for our workflows, not only for the purposes of tracking user-resource interactions, but also for impersonating user permissions.
Impersonating the user permissions can be essential in scenarios where certain operations or functionalities of the operator need to run with the same access privileges as the user who created the CRD. This allows the operator to act on behalf of the user and maintain the same level of security and access control as if the operations were being performed directly by the user.
Proposed Solution
I propose adding a feature that enables the Ansible-based operator to retrieve the username that initiates the instantiation of a CRD and to impersonate the user permissions for the instantiated resource. The information about the user and their permissions could be retrieved from the Kubernetes API or the metadata associated with the CRD instantiation event.
Thank you in advance,

Adding some thoughts here:
CRDs by default do not contain any field to know the user who created it. The few possible ways it can be done on server side is by enabling audit logs and verifying the event of CRD creation: https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/#synopsis. On the client-side, (as mentioned) it should be possible by adding custom annotations to the CRD. Usually in go, with the help of controller-runtime client we can fetch the CRD and investigate the custom annotations being set:
crd := &apiextensionsv1.CustomResourceDefinition{}
	err = c.Get(context.TODO(), client.ObjectKey{Name: <crdName>}, crd)
	if err != nil {
		// log error and do something
	}

	// Retrieve the annotation from the CRD's metadata
	annotations := crd.GetAnnotations()
	owner := annotations["<>"]

Based on the tutorial here, looks like kubernetes.core.kubectl collections should be helpful in providing clients that help in interacting with cluster. However, since I don't have much knowledge in ansible, will leave it to the community to provide more info.

Based on the information provided, the information shared by @varshaprasad96 is the same information I would have shared.
@jangel97 I do have a clarifying question:
When you say:

I've noticed that the operator is not able to retrieve the username that instantiated a Custom Resource Definition (CRD). This functionality is crucial for our workflows, not only for the purposes of tracking user-resource interactions, but also for impersonating user permissions.

Do you actually mean the CustomResourceDefinition Kubernetes resource or are you referring to an instance of a Custom Resource?
If you are looking for a way to get user information when they create a Custom Resource (i.e a resource called Foo that your operator reconciles), you should be able to get that information via an admission webhook. According the the Kubernetes Admission Webhook Request docs  it looks like it includes a userInfo field that contains username, uid, and groups of the user that is attempting to create the resource.

Hello @everettraven ,

Do you actually mean the CustomResourceDefinition Kubernetes resource or are you referring to an instance of a Custom Resource?

I am refering to the instance of a Custom Resource.
I am coding an operator that can provision kubevirt VMs and PVCs, I have a CRD called ITVM, so my customers can create VMs following our internal process. In this CRD, there is a field, the .spec.namespace, and people can choose in which namespace they provision a system.
My concern is that if operator has permissions to provision kubevirt VMs in the namespaces of multiple users, that means that a given customer could specify another namespace and provision a thousand VMs there, breaking the quota of another team. When I was thinking on possible solutions on how to approach this, I considered whether deploy an operator instance of having a central cluster-scoped operator capable of impersonating the user when creating the kubevirt VM and the PVCs. I do not know how that would work with the reconciliation loop of the operator.
Maybe having operators impersonate user permissions it is not a valid feature for any use-case, I do not know if it makes sense from a community/ecosystem perspective. Do you know of any possible patterns that I can use to prvent this behaviour?
After reading your response, I was considering maybe to create Admission Controller that checks spec of ITVM and validates if the user is allowed to have operator create those resources. Would that be a correct pattern?
Kind regards and thank you for your help and insight!

@jangel97 Thanks for the additional information on what you are trying to accomplish!

I am coding an operator that can provision kubevirt VMs and PVCs, I have a CRD called ITVM, so my customers can create VMs following our internal process. In this CRD, there is a field, the .spec.namespace, and people can choose in which namespace they provision a system.
My concern is that if operator has permissions to provision kubevirt VMs in the namespaces of multiple users, that means that a given customer could specify another namespace and provision a thousand VMs there, breaking the quota of another team. When I was thinking on possible solutions on how to approach this, I considered whether deploy an operator instance of having a central cluster-scoped operator capable of impersonating the user when creating the kubevirt VM and the PVCs. I do not know how that would work with the reconciliation loop of the operator.

So this would be my recommendation:

Make your ITVM CRD a namespace scoped resource. This allows you to get rid of the spec.namespace field and instead your custom resources will have to have the metadata.namespace field populated to create them in a particular namespace. This allows allows for much more fine-grained controls over permissions for creating these resources via RBAC. I think this should address your concerns around a customer being able to request that VMs are provisioned in other namespaces because in this method they should only be able to provision VMs in namespaces they have permission to create ITVM resources in. This also means your operator doesn't have to impersonate the user.
Create a cluster-scoped operator that is capable of reconciling the ITVM custom resources in any namespace.

Maybe having operators impersonate user permissions it is not a valid feature for any use-case, I do not know if it makes sense from a community/ecosystem perspective. Do you know of any possible patterns that I can use to prvent this behaviour?

Hopefully my recommendation above helps. There could be a valid use-case for needing to impersonate user permissions, but I can't think of any off the top of my head. As far as I am aware, I don't think your use case necessitates this requirement but I could have misunderstood.

@jangel97 I wanted to follow up - has this issue been resolved?

Closing this issue as there has been no further response from the issue author. Please feel free to reopen this issue if you feel it was closed in error

@everettraven sorry for not coming back to this, yes my issue has been resolved and thank you for your clarification!


Change requested

Related Issue

Info about Issue or bug

Closes: #[issue number that will be closed through this PR]
Describe the changes you've made
A clear and concise description of what you have done to successfully close your assigned issue. Any new files? or anything you feel to let us know!
Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Code style update (formatting, local variables)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

Please let us know if any test cases are added
Please describe the tests(if any). Provide instructions how its affecting the coverage.
Describe if there is any unusual behaviour of your code(Write NA if there isn't)
A clear and concise description of it.
Checklist:

[ ] My code follows the style guidelines of this project.
[ ] I have performed a self-review of my own code.
[ ] I have commented my code, particularly in hard-to-understand areas.
[ ] I have made corresponding changes to the documentation.
[ ] My changes generate no new warnings.
[ ] I have added tests that prove my fix is effective or that my feature works.
[ ] New and existing unit tests pass locally with my changes.

Screenshots (if any)

Original
Updated

original screenshot
updated screenshot

This PR shows the changes required to move the getlatestgithubrelease function to utils/utils.go. focus on the files which you made the PR for in keploy repo.

please make neccessary changes according to this PR in the upstream.


RqForm must be an interface

RqForm must be an interface and its implementation must be in its nested class RqForm.Base. Let's refactor it accordingly. The interface should look like:
public interface RqForm extends Request {
  Iterable<String> param(String name);
  Iterable<String> names();
}

@yegor256 thanks, I added the "bug" tag

@yegor256 thanks for the ticket, your account was topped for 15 mins, payment 000-e3486a4b

@cyberone please go ahead, it's your task now, keep this in mind, and don't hesitate to ask any technical questions you may have
The cost of this task is 30 mins (this is exactly how much will be paid, not less not more), when the task is done

@davvd please review https://github.com/yegor256/takes/pull/179

@yegor256 the PR is merged, close the task please.

@cyberone thanks!

@yegor256 I added milestone 1.0 to this issue, let me know if there has to be something else

@elenavolokhova please, review this ticket for compliance with our QA rules

@davvd Ticket passed QA review. It looks good.

@davvd Ticket passed QA review. It looks good.

@elenavolokhova thanks for the review

@cyberone 10 mins was added to the account of @elenavolokhova (for QA review), in transaction 55987502. Thanks a lot, I just topped your account for 1 hour, transaction ID 55987550, total time was 68 hours and 35 mins. the bonus for fast delivery (age=1). added +60 to your rating, now it is equal to +150


position control with non real time notebook

Is there any possibility to use xbot2 with cartesionio on a standard notebook? I want to test send position target value in every 12ms to real hardware.

Hi @AltinayGrass, yes, you can check some docs here https://advrhumanoids.github.io/CartesianInterface/quickstart.html#get-started-with-the-tutorial


Missing colors for symlink and images (Nvim Tree)

Like the title said, The colors for the images and the symlinks are strange.
I am working on it to fix them

Thank you for the PR! Just merged it in.


Document VertexAttribute and VertexBinding

It's not immediately clear how vertex bindings and attributes relate to each other, and the names of the struct members doesn't elucidate much. Some feedback:

Both have a Uint32 binding; field; I'm guessing the one in SDL_GpuVertexAttribute refers to a SDL_GpuVertexBinding and the one in SDL_GpuVertexBinding to a bound vertex buffer… maybe?

We should add some high-level documentation to the header and potentially rename the binding field of at least one of these structs.

"VertexBinding" no longer exists. It and many related struct members got renamed for clarity, and docs were added to additionally specify the relationship between attributes and buffers.


Kubernetes/CoreOS 1.6.6 - OSD CrashLoopBackOff to create and/or init after node reboot

Hello,
I already opened a similar issue few time ago. Unfortunatly things are getting really random, sometimes it works, sometimes not. Notice that i've redeployed several times the K8S cluster from the ground.
I'm still facing issues where forego sends SIGTERM after OSD init.
You will find below the disk setup and logs
Setup
Hosting: VMware vSphere 6.5
Host: CoreOS 1409.5.0 (stable)
Kubernetes: 1.6.6
Scenario: osd_directory

Systemd Mount units
format
[Unit]
Before=kubelet.service home-core-data-ceph-osd.mount
ConditionPathExists=!/home/core/data/ceph/osd/ceph-301/ceph_fsid
ConditionPathExists=!/home/core/data/ceph/osd/ceph-302/ceph_fsid

[Service]
Type=oneshot
ExecStart=/usr/sbin/parted -s /dev/sdb mklabel gpt mkpart 1 xfs 0% 100%
ExecStart=/usr/sbin/parted -s /dev/sdc mklabel gpt mkpart 1 xfs 0% 100%
ExecStart=/usr/sbin/parted -s /dev/sdd mklabel gpt mkpart 1 xfs 0% 100%
ExecStart=/usr/sbin/mkfs.xfs /dev/sdb1 -f
ExecStart=/usr/sbin/mkfs.xfs /dev/sdc1 -f
ExecStart=/usr/sbin/mkfs.xfs /dev/sdd1 -f
ExecStart=/usr/bin/mkdir -p /home/core/data/ceph/osd/ceph-301
ExecStart=/usr/bin/mkdir -p /home/core/data/ceph/osd/ceph-302
ExecStart=/usr/bin/chown -R 64045:64045 /home/core/data/ceph/osd

[Install]
WantedBy=multi-user.target

Mount sdc (ceph-301)
[Unit]
Before=kubelet.service
After=format-home-core-data-ceph-osd.service
Requires=format-home-core-data-ceph-osd.service

[Install]
RequiredBy=kubelet.service

[Mount]
What=/dev/sdc1
Where=/home/core/data/ceph/osd/ceph-301
Type=xfs
DirectoryMode=0777

Mount sdd (ceph-302)
[Unit]
Before=kubelet.service
After=format-home-core-data-ceph-osd.service
Requires=format-home-core-data-ceph-osd.service

[Install]
RequiredBy=kubelet.service

[Mount]
What=/dev/sdd1
Where=/home/core/data/ceph/osd/ceph-302
Type=xfs
DirectoryMode=0777

2017-07-05 19:31:50  /entrypoint.sh: VERBOSE: activating bash debugging mode.
2017-07-05 19:31:50  /entrypoint.sh: To run Ceph daemons in debugging mode, pass the CEPH_ARGS variable like this:
2017-07-05 19:31:50  /entrypoint.sh: -e CEPH_ARGS='--debug-ms 1 --debug-osd 10'
+/entrypoint.sh:15: main(): case "$KV_TYPE" in
+/entrypoint.sh:22: main(): source /config.k8s.sh
++/config.k8s.sh:2: source(): set -e
++/entrypoint.sh:35: main(): to_lowercase osd_directory
++common_functions.sh:178: to_lowercase(): echo osd_directory
+/entrypoint.sh:35: main(): CEPH_DAEMON=osd_directory
+/entrypoint.sh:37: main(): create_mandatory_directories
+common_functions.sh:52: create_mandatory_directories(): for keyring in '$OSD_BOOTSTRAP_KEYRING' '$MDS_BOOTSTRAP_KEYRING' '$RGW_BOOTSTRAP_KEYRING'
++common_functions.sh:53: create_mandatory_directories(): dirname /var/lib/ceph/bootstrap-osd/ceph.keyring
+common_functions.sh:53: create_mandatory_directories(): mkdir -p /var/lib/ceph/bootstrap-osd
+common_functions.sh:52: create_mandatory_directories(): for keyring in '$OSD_BOOTSTRAP_KEYRING' '$MDS_BOOTSTRAP_KEYRING' '$RGW_BOOTSTRAP_KEYRING'
++common_functions.sh:53: create_mandatory_directories(): dirname /var/lib/ceph/bootstrap-mds/ceph.keyring
+common_functions.sh:53: create_mandatory_directories(): mkdir -p /var/lib/ceph/bootstrap-mds
+common_functions.sh:52: create_mandatory_directories(): for keyring in '$OSD_BOOTSTRAP_KEYRING' '$MDS_BOOTSTRAP_KEYRING' '$RGW_BOOTSTRAP_KEYRING'
++common_functions.sh:53: create_mandatory_directories(): dirname /var/lib/ceph/bootstrap-rgw/ceph.keyring
+common_functions.sh:53: create_mandatory_directories(): mkdir -p /var/lib/ceph/bootstrap-rgw
+common_functions.sh:57: create_mandatory_directories(): for directory in mon osd mds radosgw tmp mgr
+common_functions.sh:58: create_mandatory_directories(): mkdir -p /var/lib/ceph/mon
+common_functions.sh:57: create_mandatory_directories(): for directory in mon osd mds radosgw tmp mgr
+common_functions.sh:58: create_mandatory_directories(): mkdir -p /var/lib/ceph/osd
+common_functions.sh:57: create_mandatory_directories(): for directory in mon osd mds radosgw tmp mgr
+common_functions.sh:58: create_mandatory_directories(): mkdir -p /var/lib/ceph/mds
+common_functions.sh:57: create_mandatory_directories(): for directory in mon osd mds radosgw tmp mgr
+common_functions.sh:58: create_mandatory_directories(): mkdir -p /var/lib/ceph/radosgw
+common_functions.sh:57: create_mandatory_directories(): for directory in mon osd mds radosgw tmp mgr
+common_functions.sh:58: create_mandatory_directories(): mkdir -p /var/lib/ceph/tmp
+common_functions.sh:57: create_mandatory_directories(): for directory in mon osd mds radosgw tmp mgr
+common_functions.sh:58: create_mandatory_directories(): mkdir -p /var/lib/ceph/mgr
+common_functions.sh:62: create_mandatory_directories(): mkdir -p /var/lib/ceph/mon/ceph-ceph-osd-q1zs6
+common_functions.sh:65: create_mandatory_directories(): mkdir -p /var/run/ceph
+common_functions.sh:68: create_mandatory_directories(): mkdir -p /var/lib/ceph/radosgw/ceph-osd-q1zs6
+common_functions.sh:71: create_mandatory_directories(): mkdir -p /var/lib/ceph/mds/ceph-mds-ceph-osd-q1zs6
+common_functions.sh:74: create_mandatory_directories(): mkdir -p /var/lib/ceph/mgr/ceph-ceph-osd-q1zs6
+common_functions.sh:77: create_mandatory_directories(): chown --verbose -R ceph. /var/run/ceph/ /var/lib/ceph/bootstrap-mds /var/lib/ceph/bootstrap-osd /var/lib/ceph/bootstrap-rgw /var/lib/ceph/mds /var/lib/ceph/mgr /var/lib/ceph/mon /var/lib/ceph/osd /var/lib/ceph/radosgw /var/lib/ceph/tmp
ownership of '/var/run/ceph/' retained as ceph:ceph
ownership of '/var/lib/ceph/bootstrap-mds/..data' retained as ceph:ceph
ownership of '/var/lib/ceph/bootstrap-mds/ceph.keyring' retained as ceph:ceph
ownership of '/var/lib/ceph/bootstrap-mds/..7987_05_07_19_08_47.088688976/ceph.keyring' retained as ceph:ceph
ownership of '/var/lib/ceph/bootstrap-mds/..7987_05_07_19_08_47.088688976' retained as ceph:ceph
ownership of '/var/lib/ceph/bootstrap-mds' retained as ceph:ceph
ownership of '/var/lib/ceph/bootstrap-osd/..data' retained as ceph:ceph
ownership of '/var/lib/ceph/bootstrap-osd/ceph.keyring' retained as ceph:ceph
ownership of '/var/lib/ceph/bootstrap-osd/..7987_05_07_19_08_47.763135605/ceph.keyring' retained as ceph:ceph
ownership of '/var/lib/ceph/bootstrap-osd/..7987_05_07_19_08_47.763135605' retained as ceph:ceph
ownership of '/var/lib/ceph/bootstrap-osd' retained as ceph:ceph
ownership of '/var/lib/ceph/bootstrap-rgw/..data' retained as ceph:ceph
ownership of '/var/lib/ceph/bootstrap-rgw/ceph.keyring' retained as ceph:ceph
ownership of '/var/lib/ceph/bootstrap-rgw/..7987_05_07_19_08_47.595177081/ceph.keyring' retained as ceph:ceph
ownership of '/var/lib/ceph/bootstrap-rgw/..7987_05_07_19_08_47.595177081' retained as ceph:ceph
ownership of '/var/lib/ceph/bootstrap-rgw' retained as ceph:ceph
ownership of '/var/lib/ceph/mds/ceph-mds-ceph-osd-8w30n' retained as ceph:ceph
ownership of '/var/lib/ceph/mds/ceph-mds-ceph-osd-q1zs6' retained as ceph:ceph
ownership of '/var/lib/ceph/mds/ceph-mds-ceph-osd-wfmxq' retained as ceph:ceph
ownership of '/var/lib/ceph/mds/ceph-mds-ceph-osd-hqd54' retained as ceph:ceph
ownership of '/var/lib/ceph/mds' retained as ceph:ceph
ownership of '/var/lib/ceph/mgr/ceph-ceph-osd-8w30n' retained as ceph:ceph
ownership of '/var/lib/ceph/mgr/ceph-ceph-osd-wfmxq' retained as ceph:ceph
ownership of '/var/lib/ceph/mgr/ceph-ceph-osd-hqd54' retained as ceph:ceph
ownership of '/var/lib/ceph/mgr/ceph-ceph-osd-q1zs6' retained as ceph:ceph
ownership of '/var/lib/ceph/mgr' retained as ceph:ceph
ownership of '/var/lib/ceph/mon/ceph-ceph-osd-8w30n' retained as ceph:ceph
ownership of '/var/lib/ceph/mon/ceph-ceph-osd-wfmxq' retained as ceph:ceph
ownership of '/var/lib/ceph/mon/ceph-ceph-osd-hqd54' retained as ceph:ceph
ownership of '/var/lib/ceph/mon/ceph-ceph-osd-q1zs6' retained as ceph:ceph
ownership of '/var/lib/ceph/mon' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-301/fsid' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-301/store_version' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-301/superblock' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-301/current/commit_op_seq' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-301/current/omap/LOCK' retained as ceph:ceph
changed ownership of '/var/lib/ceph/osd/ceph-301/current/omap/CURRENT' from root:root to ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-301/current/omap/osd_uuid' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-301/current/omap/LOG.old' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-301/current/omap/LOG' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-301/current/omap/000009.ldb' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-301/current/omap/000012.ldb' retained as ceph:ceph
changed ownership of '/var/lib/ceph/osd/ceph-301/current/omap/000017.log' from root:root to ceph:ceph
changed ownership of '/var/lib/ceph/osd/ceph-301/current/omap/MANIFEST-000016' from root:root to ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-301/current/omap' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-301/current/nosnap' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-301/current/meta/osd\usuperblock__0_23C2FCDE__none' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-301/current/meta/snapmapper__0_A468EC03__none' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-301/current/meta' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-301/current' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-301/journal' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-301/type' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-301/magic' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-301/whoami' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-301/ceph_fsid' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-301/ready' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-301/keyring' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-301' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/fsid' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/store_version' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/superblock' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/current/commit_op_seq' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/current/omap/LOCK' retained as ceph:ceph
changed ownership of '/var/lib/ceph/osd/ceph-302/current/omap/CURRENT' from root:root to ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/current/omap/osd_uuid' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/current/omap/LOG.old' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/current/omap/LOG' retained as ceph:ceph
changed ownership of '/var/lib/ceph/osd/ceph-302/current/omap/000019.log' from root:root to ceph:ceph
changed ownership of '/var/lib/ceph/osd/ceph-302/current/omap/MANIFEST-000017' from root:root to ceph:ceph
changed ownership of '/var/lib/ceph/osd/ceph-302/current/omap/000020.ldb' from root:root to ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/current/omap' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/current/nosnap' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/current/meta/osd\usuperblock__0_23C2FCDE__none' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/current/meta/snapmapper__0_A468EC03__none' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/current/meta/inc\uosdmap.1__0_B65F4306__none' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/current/meta/osdmap.1__0_FD6E49B1__none' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/current/meta/inc\uosdmap.2__0_B65F40D6__none' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/current/meta/osdmap.2__0_FD6E4941__none' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/current/meta/inc\uosdmap.3__0_B65F4066__none' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/current/meta/osdmap.3__0_FD6E4E11__none' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/current/meta/inc\uosdmap.4__0_B65F4136__none' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/current/meta/osdmap.4__0_FD6E4FA1__none' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/current/meta/inc\uosdmap.5__0_B65F46C6__none' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/current/meta/osdmap.5__0_FD6E4F71__none' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/current/meta/inc\uosdmap.6__0_B65F4796__none' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/current/meta/osdmap.6__0_FD6E4C01__none' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/current/meta/inc\uosdmap.7__0_B65F4726__none' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/current/meta/osdmap.7__0_FD6E4DD1__none' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/current/meta/inc\uosdmap.8__0_B65F44F6__none' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/current/meta/osdmap.8__0_FD6E4D61__none' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/current/meta/inc\uosdmap.9__0_B65F4586__none' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/current/meta/osdmap.9__0_FD6E4231__none' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/current/meta/inc\uosdmap.10__0_F4E9C003__none' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/current/meta/osdmap.10__0_6417091C__none' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/current/meta/inc\uosdmap.11__0_F4E9C1D3__none' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/current/meta/osdmap.11__0_64170EAC__none' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/current/meta/inc\uosdmap.12__0_F4E9C163__none' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/current/meta/osdmap.12__0_64170E7C__none' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/current/meta/inc\uosdmap.13__0_F4E9C633__none' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/current/meta/osdmap.13__0_64170F0C__none' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/current/meta/inc\uosdmap.14__0_F4E9C7C3__none' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/current/meta/osdmap.14__0_64170CDC__none' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/current/meta/inc\uosdmap.15__0_F4E9C493__none' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/current/meta/osdmap.15__0_64170C6C__none' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/current/meta/inc\uosdmap.16__0_F4E9C423__none' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/current/meta/osdmap.16__0_64170D3C__none' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/current/meta/inc\uosdmap.17__0_F4E9C5F3__none' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/current/meta/osdmap.17__0_641702CC__none' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/current/meta' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/current' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/journal' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/type' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/magic' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/whoami' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/ceph_fsid' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/ready' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302/keyring' retained as ceph:ceph
ownership of '/var/lib/ceph/osd/ceph-302' retained as ceph:ceph
ownership of '/var/lib/ceph/osd' retained as ceph:ceph
ownership of '/var/lib/ceph/radosgw/ceph-osd-wfmxq' retained as ceph:ceph
ownership of '/var/lib/ceph/radosgw/ceph-osd-hqd54' retained as ceph:ceph
ownership of '/var/lib/ceph/radosgw/ceph-osd-q1zs6' retained as ceph:ceph
ownership of '/var/lib/ceph/radosgw/ceph-osd-8w30n' retained as ceph:ceph
ownership of '/var/lib/ceph/radosgw' retained as ceph:ceph
ownership of '/var/lib/ceph/tmp' retained as ceph:ceph
+/entrypoint.sh:41: main(): case "$CEPH_DAEMON" in
+/entrypoint.sh:59: main(): source start_osd.sh
++start_osd.sh:2: source(): set -e
++start_osd.sh:4: source(): is_redhat
++common_functions.sh:211: is_redhat(): get_package_manager
++common_functions.sh:196: get_package_manager(): is_available rpm
++common_functions.sh:46: is_available(): command -v rpm
++common_functions.sh:198: get_package_manager(): is_available dpkg
++common_functions.sh:46: is_available(): command -v dpkg
++common_functions.sh:199: get_package_manager(): OS_VENDOR=ubuntu
++common_functions.sh:212: is_redhat(): [[ ubuntu == \r\e\d\h\a\t ]]
++start_osd.sh:6: source(): is_ubuntu
++common_functions.sh:205: is_ubuntu(): get_package_manager
++common_functions.sh:196: get_package_manager(): is_available rpm
++common_functions.sh:46: is_available(): command -v rpm
++common_functions.sh:198: get_package_manager(): is_available dpkg
++common_functions.sh:46: is_available(): command -v dpkg
++common_functions.sh:199: get_package_manager(): OS_VENDOR=ubuntu
++common_functions.sh:206: is_ubuntu(): [[ ubuntu == \u\b\u\n\t\u ]]
++start_osd.sh:7: source(): source /etc/default/ceph
+++/etc/default/ceph:7: source(): TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES=134217728
+/entrypoint.sh:60: main(): OSD_TYPE=directory
+/entrypoint.sh:61: main(): start_osd
+start_osd.sh:11: start_osd(): get_config
+/config.k8s.sh:41: get_config(): log 'k8s: config is stored as k8s secrets.'
+common_functions.sh:6: log(): '[' -z 'k8s: config is stored as k8s secrets.' ']'
+common_functions.sh:10: log(): local timestamp
++common_functions.sh:11: log(): date '+%F %T'
+common_functions.sh:11: log(): timestamp='2017-07-05 19:31:50'
+common_functions.sh:12: log(): echo '2017-07-05 19:31:50  /entrypoint.sh: k8s: config is stored as k8s secrets.'
+common_functions.sh:13: log(): return 0
2017-07-05 19:31:50  /entrypoint.sh: k8s: config is stored as k8s secrets.
+start_osd.sh:12: start_osd(): check_config
+common_functions.sh:18: check_config(): [[ ! -e /etc/ceph/ceph.conf ]]
+start_osd.sh:14: start_osd(): '[' 1 -eq 1 ']'
+start_osd.sh:15: start_osd(): get_admin_key
+/config.k8s.sh:6: get_admin_key(): log 'k8s: does not generate the admin key. Use Kubernetes secrets instead.'
+common_functions.sh:6: log(): '[' -z 'k8s: does not generate the admin key. Use Kubernetes secrets instead.' ']'
+common_functions.sh:10: log(): local timestamp
++common_functions.sh:11: log(): date '+%F %T'
+common_functions.sh:11: log(): timestamp='2017-07-05 19:31:50'
+common_functions.sh:12: log(): echo '2017-07-05 19:31:50  /entrypoint.sh: k8s: does not generate the admin key. Use Kubernetes secrets instead.'
+common_functions.sh:13: log(): return 0
2017-07-05 19:31:50  /entrypoint.sh: k8s: does not generate the admin key. Use Kubernetes secrets instead.
+start_osd.sh:16: start_osd(): check_admin_key
+common_functions.sh:26: check_admin_key(): [[ ! -e /etc/ceph/ceph.client.admin.keyring ]]
+start_osd.sh:19: start_osd(): case "$OSD_TYPE" in
+start_osd.sh:21: start_osd(): source osd_directory.sh
++osd_directory.sh:2: source(): set -e
+start_osd.sh:22: start_osd(): source osd_common.sh
++osd_common.sh:2: source(): set -e
+start_osd.sh:23: start_osd(): osd_directory
+osd_directory.sh:5: osd_directory(): [[ ! -d /var/lib/ceph/osd ]]
+osd_directory.sh:11: osd_directory(): '[' -z ceph-osd-q1zs6 ']'
++osd_directory.sh:17: osd_directory(): find /var/lib/ceph/osd -prune -empty
+osd_directory.sh:17: osd_directory(): [[ -n '' ]]
+osd_directory.sh:36: osd_directory(): mkdir -p /etc/forego/ceph
+osd_directory.sh:37: osd_directory(): echo ''
++osd_directory.sh:39: osd_directory(): find /var/lib/ceph/osd -maxdepth 1 -name 'ceph*'
++osd_directory.sh:39: osd_directory(): sed 's/.*-//'
+osd_directory.sh:39: osd_directory(): for OSD_ID in '$(find /var/lib/ceph/osd -maxdepth 1 -name "${CLUSTER}*" | sed '\''s/.*-//'\'')'
++osd_directory.sh:40: osd_directory(): get_osd_path 301
++common_functions.sh:242: get_osd_path(): echo /var/lib/ceph/osd/ceph-301/
+osd_directory.sh:40: osd_directory(): OSD_PATH=/var/lib/ceph/osd/ceph-301/
+osd_directory.sh:41: osd_directory(): OSD_KEYRING=/var/lib/ceph/osd/ceph-301//keyring
+osd_directory.sh:43: osd_directory(): '[' -n '' ']'
+osd_directory.sh:47: osd_directory(): '[' -n '' ']'
+osd_directory.sh:51: osd_directory(): OSD_J=/var/lib/ceph/osd/ceph-301//journal
+osd_directory.sh:55: osd_directory(): '[' '!' -e /var/lib/ceph/osd/ceph-301//keyring ']'
+osd_directory.sh:74: osd_directory(): echo 'ceph-301: /usr/bin/ceph-osd --cluster ceph -f -i 301 --osd-journal /var/lib/ceph/osd/ceph-301//journal -k /var/lib/ceph/osd/ceph-301//keyring'
+osd_directory.sh:74: osd_directory(): tee -a /etc/forego/ceph/Procfile
ceph-301: /usr/bin/ceph-osd --cluster ceph -f -i 301 --osd-journal /var/lib/ceph/osd/ceph-301//journal -k /var/lib/ceph/osd/ceph-301//keyring
+osd_directory.sh:39: osd_directory(): for OSD_ID in '$(find /var/lib/ceph/osd -maxdepth 1 -name "${CLUSTER}*" | sed '\''s/.*-//'\'')'
++osd_directory.sh:40: osd_directory(): get_osd_path 302
++common_functions.sh:242: get_osd_path(): echo /var/lib/ceph/osd/ceph-302/
+osd_directory.sh:40: osd_directory(): OSD_PATH=/var/lib/ceph/osd/ceph-302/
+osd_directory.sh:41: osd_directory(): OSD_KEYRING=/var/lib/ceph/osd/ceph-302//keyring
+osd_directory.sh:43: osd_directory(): '[' -n '' ']'
+osd_directory.sh:47: osd_directory(): '[' -n '' ']'
+osd_directory.sh:51: osd_directory(): OSD_J=/var/lib/ceph/osd/ceph-302//journal
+osd_directory.sh:55: osd_directory(): '[' '!' -e /var/lib/ceph/osd/ceph-302//keyring ']'
+osd_directory.sh:74: osd_directory(): echo 'ceph-302: /usr/bin/ceph-osd --cluster ceph -f -i 302 --osd-journal /var/lib/ceph/osd/ceph-302//journal -k /var/lib/ceph/osd/ceph-302//keyring'
ceph-302: /usr/bin/ceph-osd --cluster ceph -f -i 302 --osd-journal /var/lib/ceph/osd/ceph-302//journal -k /var/lib/ceph/osd/ceph-302//keyring
+osd_directory.sh:74: osd_directory(): tee -a /etc/forego/ceph/Procfile
+osd_directory.sh:76: osd_directory(): log SUCCESS
+common_functions.sh:6: log(): '[' -z SUCCESS ']'
+common_functions.sh:10: log(): local timestamp
++common_functions.sh:11: log(): date '+%F %T'
+common_functions.sh:11: log(): timestamp='2017-07-05 19:31:50'
+common_functions.sh:12: log(): echo '2017-07-05 19:31:50  /entrypoint.sh: SUCCESS'
+common_functions.sh:13: log(): return 0
+osd_directory.sh:77: osd_directory(): start_forego
+osd_common.sh:37: start_forego(): exec /usr/local/bin/forego start -f /etc/forego/ceph/Procfile
2017-07-05 19:31:50  /entrypoint.sh: SUCCESS
forego     | starting ceph-301.1 on port 5000
forego     | starting ceph-302.1 on port 5100
ceph-301.1 | starting osd.301 at - osd_data /var/lib/ceph/osd/ceph-301 /var/lib/ceph/osd/ceph-301//journal
ceph-302.1 | starting osd.302 at - osd_data /var/lib/ceph/osd/ceph-302 /var/lib/ceph/osd/ceph-302//journal
ceph-301.1 | 2017-07-05 19:31:50.125750 7f37b2d01a40 -1 journal FileJournal::_open: disabling aio for non-block journal.  Use journal_force_aio to force use of aio anyway
ceph-302.1 | 2017-07-05 19:31:50.127068 7fac3c1a4a40 -1 journal FileJournal::_open: disabling aio for non-block journal.  Use journal_force_aio to force use of aio anyway
ceph-301.1 | 2017-07-05 19:31:50.130814 7f37b2d01a40 -1 osd.301 0 log_to_monitors {default=true}
ceph-302.1 | 2017-07-05 19:31:50.131692 7fac3c1a4a40 -1 osd.302 17 log_to_monitors {default=true}
ceph-301.1 | 2017-07-05 19:31:50.135667 7f37b2d01a40 -1  ** ERROR: osd init failed: (1) Operation not permitted
ceph-301.1 | /tmp/buildd/ceph-11.2.0/src/common/HeartbeatMap.cc: In function 'ceph::HeartbeatMap::~HeartbeatMap()' thread 7f37b2d01a40 time 2017-07-05 19:31:50.136477
ceph-301.1 | /tmp/buildd/ceph-11.2.0/src/common/HeartbeatMap.cc: 46: FAILED assert(m_workers.empty())
ceph-301.1 |  ceph version 11.2.0 (f223e27eeb35991352ebc1f67423d4ebc252adb7)
ceph-301.1 |  1: (ceph::__ceph_assert_fail(char const*, char const*, int, char const*)+0x80) [0x55c286eb7380]
ceph-301.1 |  2: (ceph::HeartbeatMap::~HeartbeatMap()+0xd1) [0x55c286f9da71]
ceph-301.1 |  3: (CephContext::~CephContext()+0x428) [0x55c286f85498]
ceph-301.1 |  4: (CephContext::put()+0xec) [0x55c286f8578c]
ceph-301.1 |  5: (main()+0xd97) [0x55c28670af87]
ceph-301.1 |  6: (__libc_start_main()+0xf0) [0x7f37b0377830]
ceph-301.1 |  7: (_start()+0x29) [0x55c286778dc9]
ceph-301.1 |  NOTE: a copy of the executable, or `objdump -rdS <executable>` is needed to interpret this.
ceph-301.1 | 2017-07-05 19:31:50.138232 7f37b2d01a40 -1 /tmp/buildd/ceph-11.2.0/src/common/HeartbeatMap.cc: In function 'ceph::HeartbeatMap::~HeartbeatMap()' thread 7f37b2d01a40 time 2017-07-05 19:31:50.136477
ceph-301.1 | /tmp/buildd/ceph-11.2.0/src/common/HeartbeatMap.cc: 46: FAILED assert(m_workers.empty())
ceph-301.1 |
ceph-301.1 |  ceph version 11.2.0 (f223e27eeb35991352ebc1f67423d4ebc252adb7)
ceph-301.1 |  1: (ceph::__ceph_assert_fail(char const*, char const*, int, char const*)+0x80) [0x55c286eb7380]
ceph-301.1 |  2: (ceph::HeartbeatMap::~HeartbeatMap()+0xd1) [0x55c286f9da71]
ceph-301.1 |  3: (CephContext::~CephContext()+0x428) [0x55c286f85498]
ceph-301.1 |  4: (CephContext::put()+0xec) [0x55c286f8578c]
ceph-301.1 |  5: (main()+0xd97) [0x55c28670af87]
ceph-301.1 |  6: (__libc_start_main()+0xf0) [0x7f37b0377830]
ceph-301.1 |  7: (_start()+0x29) [0x55c286778dc9]
ceph-301.1 |  NOTE: a copy of the executable, or `objdump -rdS <executable>` is needed to interpret this.
ceph-301.1 |
ceph-301.1 |   -103> 2017-07-05 19:31:50.125750 7f37b2d01a40 -1 journal FileJournal::_open: disabling aio for non-block journal.  Use journal_force_aio to force use of aio anyway
ceph-301.1 |    -61> 2017-07-05 19:31:50.130814 7f37b2d01a40 -1 osd.301 0 log_to_monitors {default=true}
ceph-301.1 |    -25> 2017-07-05 19:31:50.135667 7f37b2d01a40 -1  ** ERROR: osd init failed: (1) Operation not permitted

ceph-301.1 |      0> 2017-07-05 19:31:50.138232 7f37b2d01a40 -1 /tmp/buildd/ceph-11.2.0/src/common/HeartbeatMap.cc: In function 'ceph::HeartbeatMap::~HeartbeatMap()' thread 7f37b2d01a40 time 2017-07-05 19:31:50.136477
ceph-301.1 | /tmp/buildd/ceph-11.2.0/src/common/HeartbeatMap.cc: 46: FAILED assert(m_workers.empty())
ceph-301.1 |
ceph-301.1 |  ceph version 11.2.0 (f223e27eeb35991352ebc1f67423d4ebc252adb7)
ceph-301.1 |  1: (ceph::__ceph_assert_fail(char const*, char const*, int, char const*)+0x80) [0x55c286eb7380]
ceph-301.1 |  2: (ceph::HeartbeatMap::~HeartbeatMap()+0xd1) [0x55c286f9da71]
ceph-301.1 |  3: (CephContext::~CephContext()+0x428) [0x55c286f85498]
ceph-301.1 |  4: (CephContext::put()+0xec) [0x55c286f8578c]
ceph-301.1 |  5: (main()+0xd97) [0x55c28670af87]
ceph-301.1 |  6: (__libc_start_main()+0xf0) [0x7f37b0377830]
ceph-301.1 |  7: (_start()+0x29) [0x55c286778dc9]
ceph-301.1 |  NOTE: a copy of the executable, or `objdump -rdS <executable>` is needed to interpret this.
ceph-301.1 |
ceph-301.1 | *** Caught signal (Aborted) **
ceph-301.1 |  in thread 7f37b2d01a40 thread_name:ceph-osd
ceph-301.1 |  ceph version 11.2.0 (f223e27eeb35991352ebc1f67423d4ebc252adb7)
ceph-301.1 |  1: (()+0x946e4e) [0x55c286ce5e4e]
ceph-301.1 |  2: (()+0x11390) [0x7f37b1d9a390]
ceph-301.1 |  3: (gsignal()+0x38) [0x7f37b038c428]
ceph-301.1 |  4: (abort()+0x16a) [0x7f37b038e02a]
ceph-301.1 |  5: (ceph::__ceph_assert_fail(char const*, char const*, int, char const*)+0x26b) [0x55c286eb756b]
ceph-301.1 |  6: (ceph::HeartbeatMap::~HeartbeatMap()+0xd1) [0x55c286f9da71]
ceph-301.1 |  7: (CephContext::~CephContext()+0x428) [0x55c286f85498]
ceph-301.1 |  8: (CephContext::put()+0xec) [0x55c286f8578c]
ceph-301.1 |  9: (main()+0xd97) [0x55c28670af87]
ceph-301.1 |  10: (__libc_start_main()+0xf0) [0x7f37b0377830]
ceph-301.1 |  11: (_start()+0x29) [0x55c286778dc9]
ceph-301.1 | 2017-07-05 19:31:50.142122 7f37b2d01a40 -1 *** Caught signal (Aborted) **
ceph-301.1 |  in thread 7f37b2d01a40 thread_name:ceph-osd
ceph-301.1 |
ceph-301.1 |  ceph version 11.2.0 (f223e27eeb35991352ebc1f67423d4ebc252adb7)
ceph-301.1 |  1: (()+0x946e4e) [0x55c286ce5e4e]
ceph-301.1 |  2: (()+0x11390) [0x7f37b1d9a390]
ceph-301.1 |  3: (gsignal()+0x38) [0x7f37b038c428]
ceph-301.1 |  4: (abort()+0x16a) [0x7f37b038e02a]
ceph-301.1 |  5: (ceph::__ceph_assert_fail(char const*, char const*, int, char const*)+0x26b) [0x55c286eb756b]
ceph-301.1 |  6: (ceph::HeartbeatMap::~HeartbeatMap()+0xd1) [0x55c286f9da71]
ceph-301.1 |  7: (CephContext::~CephContext()+0x428) [0x55c286f85498]
ceph-301.1 |  8: (CephContext::put()+0xec) [0x55c286f8578c]
ceph-301.1 |  9: (main()+0xd97) [0x55c28670af87]
ceph-301.1 |  10: (__libc_start_main()+0xf0) [0x7f37b0377830]
ceph-301.1 |  11: (_start()+0x29) [0x55c286778dc9]
ceph-301.1 |  NOTE: a copy of the executable, or `objdump -rdS <executable>` is needed to interpret this.
ceph-301.1 |
ceph-301.1 |      0> 2017-07-05 19:31:50.142122 7f37b2d01a40 -1 *** Caught signal (Aborted) **
ceph-301.1 |  in thread 7f37b2d01a40 thread_name:ceph-osd
ceph-301.1 |
ceph-301.1 |  ceph version 11.2.0 (f223e27eeb35991352ebc1f67423d4ebc252adb7)
ceph-301.1 |  1: (()+0x946e4e) [0x55c286ce5e4e]
ceph-301.1 |  2: (()+0x11390) [0x7f37b1d9a390]
ceph-301.1 |  3: (gsignal()+0x38) [0x7f37b038c428]
ceph-301.1 |  4: (abort()+0x16a) [0x7f37b038e02a]
ceph-301.1 |  5: (ceph::__ceph_assert_fail(char const*, char const*, int, char const*)+0x26b) [0x55c286eb756b]
ceph-301.1 |  6: (ceph::HeartbeatMap::~HeartbeatMap()+0xd1) [0x55c286f9da71]
ceph-301.1 |  7: (CephContext::~CephContext()+0x428) [0x55c286f85498]
ceph-301.1 |  8: (CephContext::put()+0xec) [0x55c286f8578c]
ceph-301.1 |  9: (main()+0xd97) [0x55c28670af87]
ceph-301.1 |  10: (__libc_start_main()+0xf0) [0x7f37b0377830]
ceph-301.1 |  11: (_start()+0x29) [0x55c286778dc9]
ceph-301.1 |  NOTE: a copy of the executable, or `objdump -rdS <executable>` is needed to interpret this.
ceph-301.1 |
forego     | sending SIGTERM to ceph-302.1
ceph-302.1 | 2017-07-05 19:31:50.653505 7fac141e6700 -1 received  signal: Terminated from  PID: 1 task name: /usr/local/bin/forego start -f /etc/forego/ceph/Procfile  UID: 0
ceph-302.1 | 2017-07-05 19:31:50.653537 7fac141e6700 -1 osd.302 17 *** Got signal Terminated ***
ceph-302.1 | 2017-07-05 19:31:50.653546 7fac141e6700 -1 osd.302 17 shutdown

Are you still experiencing this?
Can you make sure the osd key is valid?

@leseb : Will give a feedback shortly


Add use cases and manual testing test cases

closes #249
Reformatted and upgraded everyone's use cases including adding delete and sort use cases
Added sort and delete test cases in manual testing section of DG

Codecov Report

Merging #251 (5fffe84) into master (8457963) will not change coverage.
The diff coverage is 0.00%.

@@            Coverage Diff            @@
##             master     #251   +/-   ##
=========================================
  Coverage     78.78%   78.78%
  Complexity     1346     1346
=========================================
  Files           167      167
  Lines          3860     3860
  Branches        515      515
=========================================
  Hits           3041     3041
  Misses          673      673
  Partials        146      146

Impacted Files
Coverage Δ

...du/address/logic/commands/EditCustomerCommand.java
85.55% <ø> (ø)

.../java/seedu/address/model/util/SampleDataUtil.java
18.18% <0.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 8457963...5fffe84. Read the comment docs.


Add support for coffeelint

I tried creating a lint file without using stdin = True, but it didn't seem to work without it. Not sure why.

It seems to work when I removed stdin = True:
 class CoffeeLint(Validator):
     __filetype__ = "coffee"

-    stdin = True
     checker = "coffeelint"
-    args = " --stdin --reporter csv"
+    args = "--reporter csv"
     regex = r"""
             .+?,
             (?P<lnum>\d+),

Hmm, it does not seem to work on my setup. Here's the debug log without stdin = True:
2017-02-12 20:01:16,975 [WARNING] parse input = [<lints.coffee.coffeelint.CoffeeLint object at 0x10fec4c90>, [u'path,lineNumber,lineNumberEnd,level,message'], 1L]
2017-02-12 20:01:16,976 [WARNING] parsed lists = []

Likewise, with the current commit:
2017-02-12 20:02:48,694 [WARNING] parse input = [<lints.coffee.coffeelint.CoffeeLint object at 0x111ec7cd0>, [u'path,lineNumber,lineNumberEnd,level,message', u'stdin,6,,error,Curly bracesmust have the proper spacing There should be 0 spaces inside "{".'], 1L]
2017-02-12 20:02:48,694 [WARNING] parsed lists = [{'lnum': u'6', 'text': '[coffeelint]Curly braces must have the proper spacing There should be 0 spaces inside "{".', 'enum': 2, 'bufnr': 1L, 'warning': None, 'error': u'error', 'type': 'E', 'col': u''}]

Here is my vim --version output:
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Feb  3 2017 21:12:47)
MacOS X (unix) version
Included patches: 1-297
Compiled by Homebrew
Huge version with MacVim GUI.  Features included (+) or not (-):
+acl             +find_in_path    -mouse_sysmouse  -tag_any_white
+arabic          +float           +mouse_urxvt     +tcl
+autocmd         +folding         +mouse_xterm     +termguicolors
+balloon_eval    -footer          +multi_byte      +terminfo
+browse          +fork()          +multi_lang      +termresponse
++builtin_terms  +fullscreen      -mzscheme        +textobjects
+byte_offset     -gettext         +netbeans_intg   +timers
+channel         -hangul_input    +num64           +title
+cindent         +iconv           +odbeditor       +toolbar
+clientserver    +insert_expand   +packages        +transparency
+clipboard       +job             +path_extra      +user_commands
+cmdline_compl   +jumplist        +perl            +vertsplit
+cmdline_hist    +keymap          +persistent_undo +virtualedit
+cmdline_info    +lambda          +postscript      +visual
+comments        +langmap         +printer         +visualextra
+conceal         +libcall         +profile         +viminfo
+cryptv          +linebreak       +python          +vreplace
+cscope          +lispindent      -python3         +wildignore
+cursorbind      +listcmds        +quickfix        +wildmenu
+cursorshape     +localmap        +reltime         +windows
+dialog_con_gui  +lua             +rightleft       +writebackup
+diff            +menu            +ruby            -X11
+digraphs        +mksession       +scrollbind      -xfontset
+dnd             +modify_fname    +signs           +xim
-ebcdic          +mouse           +smartindent     -xpm
+emacs_tags      +mouseshape      +startuptime     -xsmp
+eval            +mouse_dec       +statusline      -xterm_clipboard
+ex_extra        -mouse_gpm       -sun_workshop    -xterm_save
+extra_search    -mouse_jsbterm   +syntax
+farsi           +mouse_netterm   +tag_binary
+file_in_path    +mouse_sgr       +tag_old_static
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
      user exrc file: "$HOME/.exrc"
  system gvimrc file: "$VIM/gvimrc"
    user gvimrc file: "$HOME/.gvimrc"
2nd user gvimrc file: "~/.vim/gvimrc"
       defaults file: "$VIMRUNTIME/defaults.vim"
    system menu file: "$VIMRUNTIME/menu.vim"
  fall-back for $VIM: "/Applications/MacVim.app/Contents/Resources/vim"
Compilation: clang -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_MACVIM -Wall -Wno-unknown-pragmas -pipe  -DMACOS_X_UNIX  -F/usr/local/opt/python/Frameworks -I/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/include/python2.7 -I/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/include/python2.7 -fno-strict-aliasing -fno-common -dynamic -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
Linking: clang   -L. -L/usr/local/lib -L. -L/usr/local/lib -F/usr/local/opt/python/Frameworks -L/usr/local/opt/python/Frameworks/Python.framework/Versions/2.7/lib/python2.7/config -lpython2.7 -framework CoreFoundation -L/usr/local/lib -o Vim -framework Cocoa -framework Carbon       -lm  -lncurses -liconv -framework Cocoa  -L/usr/local/opt/lua/lib -llua -fstack-protector  -L/System/Library/Perl/5.18/darwin-thread-multi-2level/CORE -lperl -F/usr/local/opt/python/Frameworks -framework Python  -F/System/Library/Frameworks -framework Tcl -framework CoreFoundation -framework Ruby

Did you also removed --stdin from args?

Yes, I did.


Added several Contexts

Added Context Invoice
Added Context PriceSpecification
Added Context Order
Added Context Product
Added Context Offer

Looks great!


Use correct version of dask-gateway

Dask gateway versions don't have a v in front of them.
Follow-up to https://github.com/2i2c-org/infrastructure/pull/1869

Going to merge to unbreak CI


Condition Package Zero Value Matches Can Be Inaccurate

Describe the bug
The condition package inaccurately matches on zero values for some number and string functions when the path doesn't exist in an object. This is due to null conversion between types (null is converted to 0 if interpreted as an integer, 0.0 if interpreted as a float, "" if interpreted as a string, false if interpreted as a bool).
To Reproduce
Run these tests:

{
  tests: [
    // This should not return true.
    {
      name: "number_conversion",
      transforms: [
        sub.tf.test.message({ value: {bar: null, baz: 0} }),
      ],
      condition: sub.cnd.num.eq({ object: { source_key: "foo" }, value: 0 }),
    },
    // This should not return true.
    {
      name: "string_conversion",
      transforms: [
        sub.tf.test.message({ value: {bar: null, baz: 0} }),
      ],
      condition: sub.cnd.str.eq({ object: { source_key: "foo" }, value: "" }),
    },
  ],
  transforms: [
    sub.tf.send.stdout(),
  ]
}

Expected behavior
These should return False. This may not apply to every number and string function (ex. if the path doesn't exist, then a length of zero or a regexp of ^$ is accurate).
Screenshots
N/A
Build (please complete the following information):

Version v2.2.0

Cloud (please complete the following information):
N/A
Additional context
N/A

Closed by #277


Dynamic relationships do not work with "mapBy"

Admittedly this is not a very common case. I am joining 2 Cayenne models in runtime, creating dynamic ObjRelationships. Such relationships work fine in "include" and other places, but do not work as "mapBy" keys. GET_DynamicAttributesIT.testMapByRel() demonstrates the issue, which is the use of bean property reader for mapBy-over-relationship instead of DataObject property reader:
Caused by: java.lang.IllegalArgumentException: Property 'e22' is not readable
	at org.apache.cayenne.reflect.BeanAccessor.<init>(BeanAccessor.java:92)
	at org.apache.cayenne.reflect.PropertyUtils.createSegmentAccessor(PropertyUtils.java:115)
	at org.apache.cayenne.reflect.PropertyUtils.getOrCreateSegmentAccessor(PropertyUtils.java:102)
	at org.apache.cayenne.reflect.PropertyUtils$PathAccessor.getValue(PropertyUtils.java:232)
	at org.apache.cayenne.reflect.PropertyUtils.getProperty(PropertyUtils.java:124)
	at com.nhl.link.rest.property.BeanPropertyReader.value(BeanPropertyReader.java:25)
	at com.nhl.link.rest.property.PropertyBuilder.read(PropertyBuilder.java:76)
	at com.nhl.link.rest.encoder.MapByEncoder.lambda$getPropertyReader$0(MapByEncoder.java:49)
	at com.nhl.link.rest.encoder.MapByEncoder.mapByValue(MapByEncoder.java:158)

@atomashpolskiy : it looks like LrEntity is not compiled properly by CayenneEntityCompiler. Dynamic attributes are recognized as persistent, while dynamic relationships are not.

Interestingly the problem (and the fix ) are not related to the generic nature of the entity. Just that if the relationship is not generic, the result of the erroneous calculation was ignored.


is there a version for supporting ros2 foxy?

is there a version for supporting ros2 foxy? if yes, How to do it?
thx so much!

Its not natively implemented in Foxy; Humble contains changes for accelerated computing which bring significant performance improvements.  You could use a ROS bridge from Humble to Foxy for this.


Bug/bi 2093 - (Performance) Observation Cache Refreshing After Every PUT During Overwrite

Description
Bug/bi 2093 - (Performance) Observation Cache Refreshing After Every PUT During Overwrite
Modified code so ProgramCache.populate() is called only once (instead of once per updated observation as it was doing.)
Dependencies
bi-web: develop
Testing

Use Wireshark to track activity between bapi and the Java BrAPI Test Server (JBTS) while overwriting an experiment's observations [ I used the filter http && tcp.port == 8083 && http.request.method == POST   where 8083 was the port on which JBTS is running. ]

Import an Experiment & Observation file that overwrites observations

EXPECTED RESULT
The http POST /brapi/v2/search/observations HTTP/1.1 , JSON (application/json) should be sent once.
ACTUAL RESULT
The http POST /brapi/v2/search/observations HTTP/1.1 , JSON (application/json) was sent once per overwritten observation.
Checklist:

[X] I have performed a self-review of my own code
[X] I have tested my code and ensured it meets the acceptance criteria of the story
[ ] I have tested that my code works with both the brapi-java-server and BreedBase
[ ] I have create/modified unit tests to cover this change
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to documentation
[ ] I have run TAF: <please include a link to TAF run>

merged in PR #376

merged in PR #376


Disallow search engine indexing

This disallows all search engines from indexing the pages by this app. There's nothing for the public to see here, and service domains shouldn't be indexed anyway:
https://www.gov.uk/service-manual/technology/get-a-domain-name#using-robotstxt-and-root-level-redirects
Thanks @dashouse and @edwardhorsford

I believe this will only prevent prevents robots from crawling the page. It will not prevent the page from appearing in the index.
https://developers.google.com/search/reference/robots_meta_tag#combining-crawling-with-indexing--serving-directives
Which means you should allow the robots to crawl the page, but use the noindex meta tag / header to tell it not to index it.

Thanks @36degrees! We're going to try to add a header to signon.


Add template/example for aspects

I was able to reuse a lot from the Spirit Board templates, so the amount of new code is fairly small. There is still room for more cleanup/consolidation and renaming of a few files now shared between Board and Aspect templates, but I wanted to show this first. Happy to continue which such a cleanup if you agree.

Where did you find the nice quality images for the back and front of the card? I'd love to update the Adversary boards. The image is too low resolution for my taste.

Honestly I don't reminder. Deso provided high-quality images https://discord.com/channels/707232612355276913/707234642901860392/834162486164193330 and https://discord.com/channels/707232612355276913/707234642901860392/834162534473924608, I should replace mine with those.

Can you further explain the changes to board_front.js? I take it the intent is to separate the construction of innates on a board into its own function, that you then use to create aspects 'innates' in aspect.js, is that right?
Again, I haven't touched this code in over a year. But I'm pretty sure that yes, the intent was to move the construction of innates to a separate function (parseInnatePower) which I could then reuse.

If I'm right, should we move 'parseInnatePower()' to the general.js? It feels cleaner to have all the shared functions in the general file, but I don't have any experience with coding convention on large projects so I'm genuinely asking.
I'd prefer a new file "innate.js". Seperating out functionality is good, but "general.js" very easily becomes a mix of everything (even though it's currently still very small).

There's some conflicts with this in my own code. Nothing I wouldn't be able to solve but I'm not sure how that process goes.
Happy to help, but I'm not sure where to start. Perhaps a real-time discussion helps?


Import Table Data wizard quotes new table column names

My group is in the process of migrating data from an Oracle database to a PostgreSQL database.  If I use DBeaver to migrate data using the Import Table Data wizard, the new table will be created with capitalized field names which breaks default expectations on PostgreSQL servers.  This is happening because the Oracle table uses upper case field names which the wizard borrows the casing and then quotes in the DDL statement.  I believe this behavior is new the enterprise edition.
Note: It is possible to work around the behavior by re-typing the generated mappings but doing so is tedious for tables with many fields.
I'm running on Mac OS X Sierra (10.12.4).  DBeaver Enterprise 4.0.4

Will be fixed in 4.0.6.


path: fix XDG_RUNTIME_DIR path for snap

For snaps, XDG_RUNTIME_DIR is /run/user/1000/snap.snap_name, so, it needs to be normalized.

thanks!


NIGHTS_TO_KEEP should clean up allsky-website

AUTO_DELETE="true" and NIGHTS_TO_KEEP should clean out /var/www/html/allsky/{keograms, startrails, videos} if they exist.
Perhaps add a separate options for the website: WEBSITE_AUTO_DELETE="true | false" and WEBSITE_NIGHTS_TO_KEEP.

@shiner501, I'm closing this Issue since it's an enhancement, not a bug, and I added it to the "Projects" list at the top of the page where we are tracking our "to do" items.


[PYTORCH]Fix bug during conversion with using mangled node name instead of actual output name

This bug occurs when an op has multiple outputs in pytorch, but only has a single output in relay. For example, this bug occurs with aten::max_pool2d_with_indices which has two outputs but relay's max_pool only has one:
Tensor, %34 : Tensor = aten::max_pool2d_with_indices(%input_4.1, %29, %30, %31, %32, %3)
This condition is hit:
        if node.outputsSize() > 1:
            node_name = "_".join(_get_output_names(node))

which gives this node the mangled name of input_5.1_34, instead of input_5.1. Since the TVM output is not a tuple, this mangled name is used as the key in the outputs dict. https://github.com/apache/incubator-tvm/blob/master/python/tvm/relay/frontend/pytorch.py#L2238-L2244
Later on, when the output of the node is needed, input_5.1 cannot be found in the dict, causing imprting the model to fail.
File ".../tvm/relay/frontend/pytorch.py", line 1781, in <listcomp>
    return [outputs[name] for name in _get_input_names(op_node)]
KeyError: 'input_5.1'

This PR fixes the bug by using the first output name to store the node output in the outputs dict.

I don't think this is a bug. For your case, the op converter can return dummy result as the second output. See adaptive max pool converter below.
https://github.com/apache/incubator-tvm/blob/master/python/tvm/relay/frontend/pytorch.py#L602

@masahi I see, thank you! I will change this PR to instead modify the converter for aten::max_pool2d_with_indices to have a second dummy output.

@masahi I added a converter for max_pool_2d_with_indices.
I also changed the key in outputs to be _get_output_name(op_node) instead of node_name. This way, if a converter doesn't return the right number of outputs, the assert in _get_output_name will catch it instead right away of getting a key error when an op further down tries to access that output.

@trevor-m Please update the PR title, and add a test for the new op converter in pytorch/test_forward.py.
You can add a test for with_indices variant in the existing max pool2d test, see
https://github.com/apache/incubator-tvm/blob/master/tests/python/frontend/pytorch/test_forward.py#L523

@masahi please take another look. Thanks.

Sorry I made another last minute comment.

@trevor-m Can you have a look at the failed test?

Hi @masahi , the error is due to the dummy output. For some reason there is a prim::TupleConstruct operator in the pytorch graph which creates a relay.Tuple with the maxpool2d op and the dummy None output. The dummy None output causes the failure in relay.

So MaxPool with return_indieces=True returns a tuple? Strange, it doesn't happen with adaptive pool. If you add another Torch module after max pool, which consumes the first output of max pool and ignores indieces, does this remove tuple creation?

So MaxPool with return_indieces=True returns a tuple? Strange, it doesn't happen with adaptive pool. If you add another Torch module after max pool, which consumes the first output of max pool and ignores indieces, does this remove tuple creation?

Yeah it appears to add the tuple. It looks like adaptive pool only returns indices when return_indices is True https://pytorch.org/docs/stable/nn.html#adaptivemaxpool3d which is why we don't see the issue with the adaptive pool tests. So the adaptive pool converter should actually only add the dummy output in those cases. But the behavior with zip() seems to not care about the extra None:
>>> list(zip(['1'], [5, None]))
[('1', 5)]

Anyway, I've updated the test to only consume the first output which solves the problem.

Adaptive max pool in Torch jit always returns indices, regard less of return_indices param. This is the IR when running the adaptive max pool3d test (with return_indices=False):
graph(%self : __torch__.torch.nn.modules.pooling.AdaptiveMaxPool3d,
      %input : Float(1, 32, 16, 16, 16)):
  %2 : int = prim::Constant[value=1]() # /home/masa/projects/deep/pytorch/torch/nn/functional.py:837:0
  %3 : int = prim::Constant[value=1]() # /home/masa/projects/deep/pytorch/torch/nn/functional.py:837:0
  %4 : int = prim::Constant[value=1]() # /home/masa/projects/deep/pytorch/torch/nn/functional.py:837:0
  %5 : int[] = prim::ListConstruct(%2, %3, %4)
  %6 : Float(1, 32, 1, 1, 1), %7 : Long(1, 32, 1, 1, 1) = aten::adaptive_max_pool3d(%input, %5) # /home/masa/projects/deep/pytorch/torch/nn/functional.py:837:0
  return (%6)

But yeah, if I add return_indices=True to adaptive pool test, I get the same error.

But still the "dummy output" solution is better then the one you proposed initially because it may happen that the second or other outputs do get used by other ops, so we should keep them.

@trevor-m Can you try retrigger the CI? Seems it failed for unrelated reason.

Thanks @trevor-m @zhiics