text:
Use _lastUpdated in pagination when possible

The current implementation of search pagination can get slow when using the _offset parameter with values 1m+.  Behind the scenes, the _offset parameter is translated to a Postgres LIMIT expression, which is known to be slow on large tables.
The traditional recommendation to this problem is to use "cursors". Not SQL level cursors -- logical cursors that can take advantage of IDs or whatnot.  Due to the open ended nature of FHIR search, we cannot use these logical cursors in call cases.  But we can sometimes.
When possible (frequently), we should instead use the _lastUpdated parameter for pagination.  _lastUpdated is a stable sort, server assigned, monotonically increasing, etc.  _lastUpdated is already our most commonly used sort parameter.  This will work for the "no sort parameter" case as well.

SearchControl would need to be modified somehow as well., since I think it uses offset logic for its page selector

Yes.  If we take this idea all the way, it would break the ability to jump to arbitrary pages.  I suspect that would be an unpopular change, but it's also a pretty common evolutionary terminal node ☹

Fixed in https://github.com/medplum/medplum/pull/5098 and https://github.com/medplum/medplum/pull/5102

SearchControl would need to be modified somehow as well., since I think it uses offset logic for its page selector

After looking into this, we decided to leave <SearchControl> alone for now.

The _cursor pagination is weird when it comes to the "previous" page
We looked at storing "previous" page state inside <SearchControl>, but that gets weird for permalinks

We now have a server config setting for a maximum _offset value.  It is currently disabled.  When we do enable it, the value will probably be relatively high (10k-100k), which is unlikely to affect most human use of <SearchControl>
The _cursor implementation is versioned, so we can always tweak it and add more functionality in the future as need arises.


text:
Remove all uses of User.admin

History:

A "super admin" user was original identified by User.admin = true
That was suboptimal, because it meant that it always applied to a user account, regardless of project, so a super admin could not use the same User for non admin work.  Therefore, they could not use Google auth / 2fa for the same account.
So, earlier this year, we replaced the model, so "super admin" is identified by Project.superAdmin = true
That allows a user to choose super admin status during the "Choose Profile" stage of login

There were still a handful of code paths that used User.admin, notably "Rebuild StructureDefinitions", "Rebuild SearchParameters", etc.  Those are rarely used features, but they do come up from time to time.
This PR removes all uses of User.admin.
In a future PR, we can remove the property entirely from schema and type definitions.  That will require a db migration to remove the admin property from all User objects though.

Coverage decreased (-0.002%) to 94.057% when pulling 892d09832d958dc1ddd96343f3de98331f060333 on cody-remove-user-admin-uses into efb5f360680434b17abe1818295d49442437e853 on main.

source: gharchive/pull-request

authors: codyebberson coveralls

repo: medplum/medplum

license_type: permissive

license_source: github-api


text:
Added jwt bearer token auth to MedplumClient

Added support for urn:ietf:params:oauth:grant-type:jwt-bearer
Added a isMedplumAccessToken helper to determine if using MedplumClient with a Medplum server vs generic FHIR server
Only do special Medplum stuff (lookup profile, access policies, etc) if using a Medplum server

This is in service of accessing the Health Gorilla FHIR API using MedplumClient, although it would apply to any FHIR server that requires "client assertion" JWT bearer tokens.

coverage: 94.243% (-0.02%) from 94.267% when pulling e949fc88b1ca5c3605e4b4fbc53825b771ecd435 on cody-jwt-bearer-token-auth into c43b9b8e86376b9d33cb1bfd695dac16ee681915 on main.


text:
feat(QuestionnaireForm): add support for exists, !=, etc. operators

This PR adds support for the !=, >, >=, <, <=, and exists operators for QuestionnaireItem. See: http://hl7.org/fhir/R4/valueset-questionnaire-enable-operator.html
The FHIR spec is a little unclear about what to do when comparison between types that are "potentially comparable" are made, such as Time and DateTime.
Currently the behavior is to ignore comparisons between types that are "potentially" comparable.
If the two types compared are not exactly equal and if the current answer is not undefined, then a match is not made. If the values are exactly the same type or the answer is undefined then the comparison is performed and the match is made based on the comparison.
This may be something that should be discussed in the future.
Please let me know if I missed anything obvious in this PR.
This closes #2683.

coverage: 94.22% (-0.02%) from 94.236% when pulling 82488df0e926fd98be445aeecccfdf7bb762cb02 on ThatOneBro:derrick/feat/add-questionnaire-exists-support into 41a57f91b07b6f7c1065f8880be4997de1716152 on medplum:main.

Nice! This all looks good. One thought have you tested with an answer with valueCoding? Previously the deepEquals didn't work with it so we may need a specific conditional for it, or perhaps even structuring the comparisons prior

Sure I think I can add some tests for valueCoding, I think we can make sure that the = and != are working properly for it.

Current status: fixing how comparisons are done for certain types of TypedValues under the hood. Finishing #2717 first

authors: ThatOneBro coveralls


text:
Julia Char isn't UTF-32

I don't think the current strategy of converting zarr type "U$N"=>SVector{N,Char} is valid.
It seems to work for Ascii with a byte swap, but I'm unsure if it will generally work.
This should be tested with non-ascii characters.
https://discourse.julialang.org/t/changes-to-the-representation-of-char/7291/5
https://github.com/mkitti/StaticStrings.jl/issues/8

Now the zarr type "U$N" is converted to SVector{N,CharUTF32}.

source: gharchive/issue

license: MIT


text:
Create Logger concept

For proper debugging when developing and also when debugging incoming issues we need to have the ability to get more information.
We should create a basic concept on how we can manage this without to much overhead.

With the move to encapsulated .alva files and the addition of stack trace error reporting we can handle bug reports without resorting to log files.
Stack Trace Reporting:
https://github.com/meetalva/alva/blob/eeb0cbf6d46962c81d417790c1a9fba189697886/src/electron/create-github-issue-url.ts

authors: LKuechler marionebl

repo: meetalva/alva


text:
No more Notifications for Telegram

Telegramm changed something about their Web-Messenger a few days ago. Appearance changed quite a bit.
Ever since then I don't get any notifications for incoming messages. Neither sound not the visual indicator for new messages.
Neither rebooting the system, restarting Franz nor reloading the service seems to change that.
I am on 5.7.0.-beta .1

Same of https://github.com/meetfranz/franz/issues/1993 and https://github.com/meetfranz/franz/issues/1995

Bump....the Telegram icon notifications badge is not displaying unread messages for me

With OLD style client: issue #2038 is solved, but #2026 occurs
With new K and Z client, issue #2026 is solved but #2038 occurs, because K and Z client window is not matching Franz window.

no news on this problem yet?

no news on this problem yet?

Any news on this problem?

Hey there,
I think this issue can be closed!?
Have had the same behavior. So I uninstalled completely, with also removing "Franz" files form %appdata%. Download the current version 5.7.0 from meetfranz.com an make a clean install.
After signing in, all notifications work as expected.
Have a nice one

authors: jasmines morgej schwixxer selfisch

repo: meetfranz/franz

license_source: bigquery


text:
I'm having an issue with the Meetup map location for the given address...

Hi,
This is more of meetup.com, whenever we are creating new meetup I can choose the existing venue address but the lat lng for the map needs to be updated every time!, Can you fix this?
Please list the type of authentication you are using and the endpoint you are issuing requests to. Please do NOT post your private credentials here.

Sorry this issue tracker is not intended for reporting issues on the site. Please feel free to reach out to support@meetup.com for more of these types of inquiries

authors: shahulmonna softprops

repo: meetup/api


text:
vdvsdvsd

vdsvdsvdsvsd

issue comment

another issue comment

comment

am i still able to comment from ui?

comment from app


text:
复现相关问题

作者您好，向您请教一个问题，复现实验结果时，发现框架很容易崩溃。如setting1的x4超分任务，如果按照论文中的4e-4学习率，发现训练最终崩溃；我尝试修改学习率为1e-4，发现最终能够收敛，但是在set5 Gaussian8数据集上的psnr只有31.97；再尝试调整学习率为2e-4，发现最终结果又崩溃了；想请问您一下，有什么训练策略可以解决框架崩溃的问题，达到论文的psnr效果吗？

你好，这个版本框架确实容易崩溃，我当时是不断的从断点重训（即设置resume_state）直到结束。也许可以写一个脚本来判断当崩溃时自动重启训练。

好嘞，万分感谢

repo: megvii-research/DCLS-SR


text:
Bump urllib3 from 1.26.2 to 1.26.3

Bumps urllib3 from 1.26.2 to 1.26.3.

Release notes
Changelog
Commits

Signed-off-by: dependabot[bot] support@github.com

@dependabot rebase

repo: mehdichaouch/starred


text:
Revise wrong message api

upgrade profile API from v2.6 to v9.0
remove misunderstand API: get started
implement greeting text api

Codecov Report

Merging #139 (c513b68) into master (a3f8db7) will decrease coverage by 17.17%.
The diff coverage is 81.81%.

@@             Coverage Diff             @@
##           master     #139       +/-   ##
===========================================
- Coverage   69.43%   52.25%   -17.18%
===========================================
  Files          16       19        +3
  Lines         494      509       +15
===========================================
- Hits          343      266       -77
- Misses        126      214       +88
- Partials       25       29        +4

Impacted Files
Coverage Δ

messenger/messenger.go
0.00% <ø> (ø)

messenger/setting.go
81.81% <81.81%> (ø)

myutil/collection/collection.go
62.50% <0.00%> (-10.23%)
:arrow_down:

crawler/push.go
75.00% <0.00%> (-9.62%)
:arrow_down:

models/user/user.go
56.52% <0.00%> (-5.55%)
:arrow_down:

models/user/redis.go
58.33% <0.00%> (-4.63%)
:arrow_down:

myutil/diff.go
45.45% <0.00%> (-4.55%)
:arrow_down:

crawler/crawler.go
64.00% <0.00%> (-2.86%)
:arrow_down:

crawler/article.go
81.81% <0.00%> (-2.40%)
:arrow_down:

crawler/node.go
81.25% <0.00%> (-2.09%)
:arrow_down:

... and 11 more

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 a3f8db7...c513b68. Read the comment docs.

repo: meifamily/ptt-alertor


text:
Changes related to MeiliSearch bump to v0.16.0

The changes related to the new MeiliSearch bump, see the related milestones.
To do before the release
Here are the "emergency" changes to code before releasing MeiliSearch.
Remove the PUT /health routes
For SDKs providing a method for this route, we should remove it:

in the code
in the tests
in the code-samples, if there are present.

Dumps changes
These changes might impact some test suites but not the code-base itself.
Sort displayedAttributes fields
These changes might impact some test suites but not the code-base itself.
Could be done after the release
The following section is not a emergency change, but could be done before releasing MeiliSearch if you find some times to do it.
⚠ The priority is still given to the described changes above.
Implicit index creation
Please refer to this more detailed issue #48.

The dataset of MeiliSearch has now officially replaced all genre field with genres. After a quick peek inside some code-samples I can see genre fields are still present. Could we add the check of genre field inside the code-samples to the changes related to the v0.16 or do we create a different issue for this ?

The mandatory part is done and merged to all the SDKs.

I close this one, since #48 is still open and corresponds to the part that is not finished.

authors: bidoubiwa curquiza

repo: meilisearch/integration-guides


text:
API Response Format

This specification is intended to write guidelines about the response formats of the different API endpoints.

Closed in favor of #45

repo: meilisearch/specifications


text:
Call hooks on content-types to change documents

Description
When creating/updating an index, the strapi user should be able to change or convert the document structure of the document before it is submitted to the meilisearch index. This can be used to allow searching through connected content-types as well, since meilisearch currently can not search in nested data structures (except for arrays of strings with faceted search)
Basic example
Suppose two content types article and tag. Tags couldalso be stored in direct lists or strings in the content type, but then they would not be reusable. As such a document for an article may look something like this:
{
  "id": "1",
  "title": "Example Article",
  "content": "Some interesting content",
  "tags": [
    {
      "id": "1",
      "slug": "interesting"
    },
    {
      "id": "2",
      "slug": "new"
    }
  ]
}

for being able to search the article also with the tags, they should be stored as either string like "tags": "interesting new" or in a list to support faceted search  "tags": ["interesting", "new"]
I think the most fitting place to put this would be inside api/article/services/article.js:
module.exports = {
  meiliSearchBeforeIndex(document) {
    document.tags = document.tags.map((tag) => tag.slug)
    return document;
  },
};

async should probably also be possible if one wants to maybe get some other data.
Implementation
Could probably be done in fetchRowBatch
async function fetchRowBatch({ start, limit, collection }) {
  const documents = await strapi.services[collection].find({
    _publicationState: 'preview',
    _limit: limit,
    _start: start,
  })
  if (typeof strapi.services[collection].meiliSearchBeforeIndex === "function") {
    return await Promise.all(documents.map(async (d) => await strapi.services[collection].meiliSearchBeforeIndex(d)))
  }
  return documents
}

Other
To fully use the potential of this feature, it should be possible to configure the indexes (such as which attributes are searchable or which are can be used in faceted search) as well through a similar mechanism, the strapi plugin config or the frontend.

This is a good idea, I will look into it and consider the feature and its implementation

fixed by #288

authors: bidoubiwa sargreal

repo: meilisearch/strapi-plugin-meilisearch


text:
Add entries transformer before indexation

related:

#264
#249
#248
#218
#211
#112
#42

To transform the data of a entry before sending it to MeiliSearch, the transform function must be added in the related model configuration.
For example a collection restaurant  has a config file located at /api/restaurnt/models/restaurant.js
Inside you can add a method named transformEntry in the meilisearch object:
For example to sanitize your data:
'use strict'
const { sanitizeEntity } = require('strapi-utils')

module.exports = {
  meilisearch: {
    transformEntry(entry, model) {
      entry = {
        ...entry,
        categories: entry.categories.map(cat => cat.name)
      };
      entry =  sanitizeEntity(entry, { model })
      return entry
    },
    indexName: "my_restaurant"
  }
}

@bidoubiwa testing against the larger index on #296 , thank you for the direction.

authors: bidoubiwa jbelke


text:
Single common password

Idea of using a single password to lock and unlock a master encryption key. Possibly use an ".obsidian.meld" file that has an encrypted master password key. You can use a password to unlock the master key that is used to encrypt/decrypt content within obsidian..

I'm not sure I follow.   This is so you don't need to keep typing in the password for each block of encrypted text?
How about the last password entered persists in the password dialog?   You wouldn't need to retype the password for that vault session (or maybe have a timeout, say 1hr).   This would speed up encrypting/decrypting blocks if you tended to use the same password.

Yeah, I'm not sure if I expanded on that thought very well.
Basically having two keys. The first (data Encryption) key is generated by meld, then meld can ask the user for a password that would then encrypt the data encryption key and place it into a file called .obsidian.meld. The content is actually encrypted with the data encryption key. The user is only prompt for a password to decrypt the data encryption key (to be held in memory) to encrypt/decrypt the content.
Does that make more since? It was late when I writing this concept up.

Thanks @jtmusky that is clearer.  But I'm not sure of the value of having 2 keys.  You could try the 'remember password' option I've just added in 1.3.0 along with the encrypt-in-place command.  Maybe this works better for your use case?

The value would be to store the password with the vault, possibly even within git "encrypted". I would suggest using PBKDF2 as the encryption cipher with some sort of salt. I'll try 1.3.0

Thanks!  If you store your key with the vault, wouldn't that be a security risk?  If your vault was compromised, so would your key and your secrets, right?  Someone with access to your vault would be able to use your key.  And if the key was password protected, and you had to enter the password before use, then you're not really gaining anything because you need to enter a password anyway.  I feel like I'm missing something 🤔

Trying release 1.3.0 with the "remember" password option does work well.
Another value is being able to change the password, with out re-encrypting all the data within the vault.

I've just installed Meld Encrypt Version: 1.3.1 into Obsidian but when I complete Step 2 "Enter and confirm a password to use" my selected text doesn't encrypt.
i.e. After entering my password into the "Enter your password" box and tabbing to the"Confirm your password" box to re-enter my password, I hit enter, but the text doesn't encrypt.
Does my password have to be a certain length or contain a mix of numbers and letters? I much appreciate your help. Thank you.

Just tested, I was able to use " " a space to encrypt. I don't think there is a minimal password strength.

@jtmusky is correct, there isn't any length or complexity requirements for passwords.
I'm not able to reproduce the issue you are having.  Which operating system are you using?  Is it possible to record a gif or video of the issue?  Having that usually helps a bunch to track down and fix bugs.

https://user-images.githubusercontent.com/81460986/112741188-18ae2400-8fcf-11eb-87d7-b968a575ff9a.mp4
I am using Windows 10 operating system.
I would like to confirm that I should hit enter after the last step of inputting my password in the "confirming my password" box for the text to be encrypted.
Thank you very much.

@barbwire08 yes, correct, you should be able to enter your password, hit Return, reenter your password to confirm, then hit Return again to encrypt your text.   Does it work like this for you?

No it doesn't work like that for me. I enter my password and hit the *Tab *key
for the curser to move down to the "Confirm your password" box as the
Return key doesn't work, then I reenter my password to confirm, but when I
hit Return nothing happens - the password box doesn't disappear from my
screen until I click outside the password box and the text has not been
encrypted.  I have attached another video FYI.
Thank you
On Sun, Mar 28, 2021 at 7:52 PM meld-cp @.***> wrote:

@barbwire08 https://github.com/barbwire08 yes, correct, you should be
able to enter your password, hit Return, reenter your password to confirm,
then hit Return again to encrypt your text. Does it work like this for you?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/meld-cp/obsidian-encrypt/issues/4#issuecomment-808867315,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ATNP56RHJZI7VSLWXN33CKLTF3U5XANCNFSM4YQRWITA
.

Let's track this in another issue as it's unrelated to the original (https://github.com/meld-cp/obsidian-encrypt/issues/7)

Hi @jtmusky, sorry, but I don't think the original request fit's in with how the plugin is designed and to be honest I'm not completely sure I'll be able to implement what you are wanting anyway, so I'll close this issue.  Thank you for your donation and the time you've given testing the plugin.

I understand. TBH, a better way to ensure confidentiality would to use an FDE or encrypted volume. Thank you for considering. :-)

authors: barbwire08 jtmusky meld-cp

repo: meld-cp/obsidian-encrypt


text:
Spacing issue between two slide of carousel.

I want to make a caousel which is same as first GIF available on this https://github.com/meliorence/react-native-snap-carousel.
Issue I am facing is i am not able to set space between two slides. I tried to do that using padding horizontal but with that I am not able to set current slide in centre as PaddingHorizontal has high precedence over activeSlideAlignment.
My requirement is current slider in centre, some portion of previous and next slide should be visible, some space should be available between two slides. And Current slide in centre means first and last slide should also be in centre.
Waiting for your support.

@pateljinal1844 Sorry, please allow me to advertise for my open source library! ~
I think this library react-native-reanimated-carousel will solve your problem. It is a high performance and very simple component, complete with React-Native reanimated 2

repo: meliorence/react-native-snap-carousel


text:
perf(styles): ⚡ changed the reference to styles

Changed the reference to styles, which allows you to shorten the construction of styles and make the output css even smaller in size

:tada: This PR is included in version 1.6.1-beta.3 :tada:
The release is available on:

npm package (@beta dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 2.0.0-alpha.1 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.7.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

repo: melishev/wuki


text:
fix ctor D3DDepthStencilState

add attribute Flags for bit operation

Thanks for the fixes, @agametov , these all look good to me. Before I merge this, I am going to add a license file to the repository so it is clear that this is an open-source project. You are the first person who has submitted a patch so far 😄 .

I've added a file to the repo which clarifies the license (MIT): https://github.com/mellinoe/veldrid/blob/master/LICENSE
Let me know that you are fine with the license and I will go ahead and merge your changes. Thanks!

@mellinoe LGFM 👍

@agametov Sorry for the delay on this. Merging now.

authors: agametov mellinoe

repo: mellinoe/veldrid


text:
Clean up .gitlab-ci.yml to allow for easier extension and per-job rules

Migrated from GitLab: https://gitlab.com/meltano/meltano/-/issues/1310
Originally created by @DouweM on 2019-11-22 16:02:58

We can make more use of "modern" .gitlab-ci.yml features like extends and include.
This is a first step in the direction of https://gitlab.com/meltano/meltano/issues/1100, which we'll attempt to address by making sure jobs only run when there are changes to files that could affect their result.

View 4 previous comments from the original issue on GitLab

repo: meltano/meltano


text:
Tooltip on settings set in env incorrectly says the setting is protected for security reasons

Migrated from GitLab: https://gitlab.com/meltano/meltano/-/issues/1712
Originally created by @DouweM on 2020-02-12 21:48:20

In https://gitlab.com/meltano/meltano/-/merge_requests/1302, we made the tooltip text dynamic based on the reason for the field being protected, but this code appears to have been rebased away in https://gitlab.com/meltano/meltano/-/commit/200335616ec879d7a50b9c152512e3ea6f4a173a.

View 2 previous comments from the original issue on GitLab


text:
Handle python depencies for the Meltano and its components

Migrated from GitLab: https://gitlab.com/meltano/meltano/-/issues/193
Originally created by @mbergeron on 2018-12-05 13:40:07

This stems out of the following discussion that happened after two production jobs started to fail.
15h]
tlapiana @jschatz dependency issue?

[14h]
jschatz @Micaël Bergeron was going to look at this. I am not sure what the issue is at the moment.

[14h]
Micaël Bergeron yes it is, there's an MR for it in "target-snowflake"

[14h]
Micaël Bergeron its a deps conflict for 'idna'

[14h]
tlapiana should this have been caught in a build process during the release? do more checks need to get run before release or is this unrelated?

[12h]
jschatz I ran into it in general python. It's a shortcoming in pip. Not sure exactly how it went down but the main problem is that our dependencies in setup py are not frozen. Which is the way it should be but it doesnt read from requirements.txt. so in the end we need to lock the dependencies somehow. That way right now seems to be with setup.py

[3m]
Micaël Bergeron basically one of our sub-deps (azure-common) is not pinning its deps and pip has not deps resolver.

> should this have been caught in a build process during the release? do more checks need to get run before release or is this unrelated?

basically this might just happen anytime you `pip install X`, if there is a sub-deps that has an unbounded dep. I'm actually very surprised `pip` doesn't resolve dependencies. What now? As we manage the venv in meltano, we could do `pip download ... --no-deps`, extract the `requirements.txt` then `pip install -r requirements.txt (if it exists)` then `pip install ...`

[<1m]
Micaël Bergeron @tlapiana tl;dr; the build process might go on just fine then 2 months later you can't install  the package properly.

It seems pip by itself is not a viable solution for deployment unless you are certain that your dependency tree is completely pinned.
Solution 1
The process I describe above:

pip download --no-deps  -d /tmp/...
(for package url)
-tar xzf /tmp/... $(basename -s .tar.gz /tmp/.../requirements.txt)

[optional] pip install -r /tmp/.../requirements.txt

(for package git repo)

unzip /tmp/... /requirements.txt
[optional] pip install -r /tmp/.../requirements.txt

pip install /tmp/...

I think it seems weird to use that to deploy but :shrug:
Scrappy solution
Manually resolve conflicts in the setup.py of each project.
/cc @jschatz1 @iroussos

View 8 previous comments from the original issue on GitLab


text:
Meltano Speedrun blog post does not configure required options for target-postgres

Migrated from GitLab: https://gitlab.com/meltano/meltano/-/issues/3544
Originally created by @WillDaSilva on 2022-05-28 20:48:17

The blog post Meltano Speedrun: From 0 to ELT in 90 Seconds has fallen out of date.
Both docs/getting-started.md and docs/src/_guide/installation.md link to it, it should be updated as necessary.
The issues arise from its instructions for configuring target-postgres:
meltano add loader target-postgres
meltano config target-postgres set postgres_username [username]
meltano config target-postgres set postgres_database speedrun

meltano elt tap-gitlab target-postgres

The required config options for target-postgres are currently user, password, and dbname, not postgres_username and postgres_database.

View 3 previous comments from the original issue on GitLab


text:
Add  instruction how to work with Jest VS code extension

this is the extension orta.vscode-jest
And it seems to work without your configuration, if you can add instructions how to make it work, I will appreciate it.
Thanks

thanks for the comment
https://github.com/jest-community/vscode-jest
this is the extension.
If we could use your great code with this package this will be cool, cause right now if I'm using your code, the extension is showing error about Zone.js

Would you mind creating a small reproduction repo so that I could identify the root cause ASAP? Thanks.

I'm not sure if this is relevant but if it helps but I found that to get the Jest VSCode plugin to play nicely with the builder I had to add the following workspace setting in VSCode:
"jest.pathToJest": "ng test <project name>"

authors: mattwilson1024 meltedspark obsd

repo: meltedspark/angular-builders


text:
[BUG] Pagerank Online doesn't update correctly when the graph is changed

Describe the bug
There are various problems with the implementation of pagerank_online (https://memgraph.com/docs/advanced-algorithms/available-algorithms/pagerank_online) :

(small) the parameter epsilon isn't coherent with the non-online version of pagerank (which uses d, the dampening).
d  is supposed to be 1 - epsilon, but the default values don't match. My suggestion is to use either d or epsilon in both algos.

(medium) The CalculatePagerank function (see here ) takes the vector of all the visits, then divides it by a constant and then normalizes it.
This doesn't make any sense, since normalizing right away would be faster and give the same result.

(urgent) The algorithm simply doesn't return the correct values when the graph gets updates, as shown in the next section

To Reproduce
Steps to reproduce the behavior, starting from an empty database:

Create the graph
CREATE (a:Person {name: 'A'}),     (b:Person {name: 'B'}),     (c:Person {name: 'C'}),     (a)-[:FOLLOWS]->(b),     (b)-[:FOLLOWS]->(c),     (c)-[:FOLLOWS]->(a);

Set pagerank_online
CALL pagerank_online.set(1000, 0.15) YIELD node, rank;

create a trigger so  pagerank_online is updated when the graph changes
CREATE TRIGGER pagerank_trigger BEFORE COMMIT EXECUTE CALL pagerank_online.update(createdVertices, createdEdges, deletedVertices, deletedEdges) YIELD node, rank

Update the graph
MATCH (c:Person {name: 'C'}) CREATE (d:Person {name: 'D'}) CREATE (c)-[:FOLLOWS]->(d);

Get new pagerank values:
CALL pagerank_online.get() YIELD node, rank RETURN node, rank;

Compare the values with other implementations of the pagerank algorithm:

import networkx as nx

# Create an empty directed graph
G = nx.DiGraph()

# Add nodes to the graph
nodes = ['A', 'B', 'C', 'D']
G.add_nodes_from(nodes)

# Add edges to the graph
edges = [('A','B'), ('B','C'), ('C','A'), ('C','D')]
G.add_edges_from(edges)

alpha = 0.85
print(nx.pagerank(G, alpha))

or use this simple website tool: http://computerscience.chemeketa.edu/cs160Reader/_static/pageRankApp/index.html
Expected behavior
It should give the correct results
Video
Here is a link to a video where I comment these issues and provide additional context.
It's on your Discord server: https://discord.com/channels/842007348272169002/852201290880385044/1280112013921619999

Hi @pippellia-btc, thank you for opening the issue 🙏
For concerns 1 and 2, I'll let the engineers dive deeper once the issue becomes a priority.
Regarding 3, the fact that the values are not the same might be related to the fact that the online algorithm is only an approximation of PageRank to make it as fast as possible. Still, it carries the same information—the likelihood of a random walk ending in a particular vertex. Does that make sense?
Does this block your further work with Memgraph?

Hey katarina, thanks for the fast reply.

Regarding 3, the fact that the values are not the same might be related to the fact that the online algorithm is only an approximation of PageRank to make it as fast as possible. Still, it carries the same information—the likelihood of a random walk ending in a particular vertex. Does that make sense?

No, that's not the reason. As I show in the video, when one re-set it with
CALL pagerank_online.set(1000, 0.15) YIELD node, rank;
the error is small (<1%).
When I change the graph the error is order of magnitudes higher, like ~50%. In the paper  it is shown that the error should always be quite small with that many random walks (1000 in the example), so it must be a  bug in the implementation.

Does this block your further work with Memgraph?

Yes, because I'll have to rewrite most of the code myself for the use-case I have in mind.

Thank you for the further explanation and a really great video, @pippellia-btc.
Just one small question - what happens if you set epsilon to default 1.0 or 0.85? I tried that and it seems that the values are then close to what you expected?

I agree with you that it would be better if it's consistent, having just d in both pagerank and pagerank online. Not sure why there was a choice to implement it differently, but probably a different dev worked on each. Still, not sure if it's good to change API and a priority is definitely to have it working correctly. I read on Discord that you tried changing half epsilon and that didn't work. In case you have some other idea on how to fix it, feel free to open a PR since MAGE is an open source project. I would be really happy to see outside contributions 😄

authors: katarinasupe pippellia-btc

repo: memgraph/mage


text:
Number type of Oracle don't right with data type of Iceberg table

I am ingesting data from oracle to iceberg table. This is data types of source table in my oracle

And this is data types in iceberg table.

Data in iceberg table

I see that number datatype in oracle don't right with data type of iceberg table

@duc-dn by default NUMBER is mapped by debezium. you could use decimal.handling.mode debezium configuration to enforce different handling.

Thanks @ismailsimsek, I added "debezium.source.decimal.handling.mode": "double" and resolved this problem

Hi @ismailsimsek, I tried to cdc with a higher version of Oracle (19) and got the error below. After I ran with Postgres, MySql, I got the same error. Before that, I was still able to run cdc with Postgres, MySql without any problem and I didn't change anything about my docker image.
2023-10-28 13:46:28,486 ERROR [io.deb.ser.ConnectorLifecycle] (pool-7-thread-1) Connector completed: success = 'false', message = 'Stopping connector after error in the application's handler method: 'org.apache.iceberg.shaded.com.fasterxml.jackson.databind.ObjectMapper org.apache.iceberg.util.JsonUtil.mapper()'', error = 'java.lang.NoSuchMethodError: 'org.apache.iceberg.shaded.com.fasterxml.jackson.databind.ObjectMapper org.apache.iceberg.util.JsonUtil.mapper()'': java.lang.NoSuchMethodError: 'org.apache.iceberg.shaded.com.fasterxml.jackson.databind.ObjectMapper org.apache.iceberg.util.JsonUtil.mapper()'
at org.apache.iceberg.hive.HiveTableOperations.setSnapshotSummary(HiveTableOperations.java:470)
at org.apache.iceberg.hive.HiveTableOperations.setSnapshotStats(HiveTableOperations.java:461)
at org.apache.iceberg.hive.HiveTableOperations.setHmsTableParameters(HiveTableOperations.java:440)
at org.apache.iceberg.hive.HiveTableOperations.doCommit(HiveTableOperations.java:237)
at org.apache.iceberg.BaseMetastoreTableOperations.commit(BaseMetastoreTableOperations.java:135)
at org.apache.iceberg.SnapshotProducer.lambda$commit$2(SnapshotProducer.java:400)
at org.apache.iceberg.util.Tasks$Builder.runTaskWithRetry(Tasks.java:413)
at org.apache.iceberg.util.Tasks$Builder.runSingleThreaded(Tasks.java:219)
at org.apache.iceberg.util.Tasks$Builder.run(Tasks.java:203)
at org.apache.iceberg.util.Tasks$Builder.run(Tasks.java:196)
at org.apache.iceberg.SnapshotProducer.commit(SnapshotProducer.java:374)
at io.debezium.server.iceberg.tableoperator.IcebergTableOperator.addToTablePerSchema(IcebergTableOperator.java:182)
at io.debezium.server.iceberg.tableoperator.IcebergTableOperator.addToTable(IcebergTableOperator.java:157)
at io.debezium.server.iceberg.IcebergChangeConsumer.handleBatch(IcebergChangeConsumer.java:167)
at io.debezium.embedded.ConvertingEngineBuilder.lambda$notifying$2(ConvertingEngineBuilder.java:101)
at io.debezium.embedded.EmbeddedEngine.pollRecords(EmbeddedEngine.java:1008)
at io.debezium.embedded.EmbeddedEngine.run(EmbeddedEngine.java:755)
at io.debezium.embedded.ConvertingEngineBuilder$2.run(ConvertingEngineBuilder.java:229)
at io.debezium.server.DebeziumServer.lambda$start$1(DebeziumServer.java:170)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
2023-10-28 13:46:28,501 INFO [io.deb.ser.DebeziumServer] (main) Received request to stop the engine
2023-10-28 13:46:28,501 INFO [io.deb.emb.EmbeddedEngine] (main) Stopping the embedded engine
2023-10-28 13:46:28,546 INFO [io.quarkus] (main) debezium-server-iceberg-dist stopped in 0.058s

authors: duc-dn ismailsimsek

repo: memiiso/debezium-server-iceberg


text:
🛑 Kérwá is down

In 2b2ec1f, Kérwá (https://kerwa.ucr.ac.cr) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Kérwá is back up in 1e1f5d0 after 10 minutes.

repo: memoemg/howyoudoing


text:
Some fixes to state scripts chapter

Came out of this discussion.

@drewmoseley: This came out of the discussion you pinged me on. Want to have a quick lookover?

This looks great and definitely does clarify things.

authors: drewmoseley kacf

repo: mendersoftware/mender-docs


text:
Add the configuration to ignore specified containers

We'd like to ignore the container injected by telepresense.

https://github.com/mercari/tortoise/pull/288

repo: mercari/tortoise


text:
Introduce sensitive tag in web scan configuration parts

Situation
DAST Reports shall not contain sensitive/secret information like headers etc. currently the DAST report shows the given headers which can contain sensitive information.
Wanted
It shall be possible to add something like "annotation" to the corresponding JSON parts, so its programmatically possible to identify sensitive information .
Also this sensivie information shall not be inside the DAST reports (OWASP ZAP)
Solution

TBD: Find the best location to filter the sensitive information and replace it with **************

Update after discussion
We want to introduce the sensitive tag, but it will be set to true on default. This way if nothing is configured the content of the header will not be inside the report.
If the user wants the header data inside the report "sensitive" : false must be set explicitly.
Example
After a scan with the config below a finding which contains the header Authorization: Basic abc will only contain Authorization: ******** inside the report.
{
    "apiVersion": "1.0",
    "webScan": {
        "url": "https://productfailure.demo.example.org",
        "headers" : [ {
	   "name" : "Authorization",
	   "value" : "Basic abc",
	   "onlyForUrls" : [...],
	   "sensitive" : true // true on default, means will be masked
	} ]
    }
}

authors: company-jcup winzj

repo: mercedes-benz/sechub


text:
feat: listen to async-cache-dedupe onError

This PR implements the listener for the onError "event" from async-cache-dedupe.
The changes on line 155 where required, since that await can throw an exception (contrary to what the old comment above it says). That would cause the error to be sent to onError twice.
Closes #66

@jhonrocha the unit test is still missing.

Hey guys! I have finally added some tests for this listener.
This functionality was partially already tested on these tests: skip, resolver, invalidation.
The tests I added are focused on checking the internal calls on async-cache-dedupe, to check if we are really listening to the onError event there.

are you good with landing this @simone-sanfratello ?

lgtm

authors: jhonrocha mcollina simone-sanfratello

repo: mercurius-js/cache


text:
Only one device (Mi smart bulb essential) not working

The plugin is great and works with all my devices except one: a Mi smart bulb essential.
Actually I have 2 Mi smart bulb essentials named as Hall 1 and Hall 2.
The Hall 2 lamp  works perfectly but the  Hall 1 lamp does not respond.
I have cross checked the IP address with the router and the Mi home app. LAN is enabled in both.
The one thing that is different from the other identical lamp is that the server detected is cn (china) while all other devices are (de) Germany.  I have also tried with the China server but it did not work.
Your config.json
"devices": [
{
"name": "Mi Hall 1",
"ip": "192.168.1.56",
"token": "ec992e8b2d66223bd88eff57b152c25c",
"deviceId": "248175669",
"model": "yeelink.light.color5",
"pollingInterval": 10,
"deepDebugLog": true,
"micloud": {
"username": "xxxxxxxxxxxxx",
"password": "xxxxxxxxxxxxx",
"country": "de",
"forceMiCloud": false
},
"buzzerControl": false,
"ledControl": true,
"childLockControl": false,
"modeControl": true
},
{
"name": "Mi Hall 2",
"ip": "192.168.1.93",
"token": "d1ad7fd9fd96b2ccf9b2bc56b48c6d47",
"pollingInterval": 10,
"deepDebugLog": false,
"micloud": {
"username": "xxxxxxxxxxxxx",
"password": "xxxxxxxxxxxxx",
"country": "de"
},
"buzzerControl": true,
"ledControl": true,
"childLockControl": true,
"modeControl": true
},
{
"name": "YL Office",
"ip": "192.168.1.63",
"token": "faf860772ef1e1464091479ed664d351",
"pollingInterval": 10,
"deepDebugLog": false,
"micloud": {
"username": "xxxxxxxxxxxxx",
"password": "xxxxxxxxxxxxx",
"country": "de"
},
"buzzerControl": true,
"ledControl": true,
"childLockControl": true,
"modeControl": true
},
{
"name": "YL Maria's",
"ip": "192.168.1.27",
"token": "d0e827d6b8a0234b4c86003ce616cdf5",
"pollingInterval": 10,
"deepDebugLog": false,
"micloud": {
"username": "xxxxxxxxxxxxx",
"password": "xxxxxxxxxxxxx",
"country": "de"
},
"buzzerControl": true,
"ledControl": true,
"childLockControl": true,
"modeControl": true
},
{
"name": "YL Living Room",
"ip": "192.168.1.65",
"token": "6f5cd8c64c574d4f03fb07a7b3d622ae",
"pollingInterval": 10,
"deepDebugLog": false,
"micloud": {
"username": "xxxxxxxxxxxxx",
"password": "xxxxxxxxxxxxx",
"country": "de"
},
"buzzerControl": true,
"ledControl": true,
"childLockControl": true,
"modeControl": true
}
],
"platform": "miot"
The Debug log is as follows ( I have removed irrellevant parts):
4/7/2022, 1:28:49 PM] [miot] [Mi Hall 1] (Protocol) 192.168.1.56 -> Handshake reply
[4/7/2022, 1:28:49 PM] [miot] [Mi Hall 1] (Protocol) 192.168.1.56 <- (2) {"method":"miIO.info","params":{"timeout":5000,"retries":3},"id":3619}
[4/7/2022, 1:28:49 PM] [miot] [Mi Hall 1] (Protocol) 192.168.1.56 <- !1p��5�a�9�+@L0FpW���
[4/7/2022, 1:28:53 PM] [miot] [Mi Hall 1] (Protocol) Start handshake 192.168.1.56
[4/7/2022, 1:28:53 PM] [miot] [Mi Hall 1] (Protocol) 192.168.1.56 -> Handshake reply
[4/7/2022, 1:28:53 PM] [miot] [Mi Hall 1] (Protocol) 192.168.1.56 <- (1) {"method":"miIO.info","params":{"timeout":5000,"retries":3},"id":3719}
[4/7/2022, 1:28:53 PM] [miot] [Mi Hall 1] (Protocol) 192.168.1.56 <- !1p��5�e��|�[��#�"k
[4/7/2022, 1:28:54 PM] [miot] [YL Maria's] Splitting properties into chunks. Number of chunks: 1. Chunk size: 14
[4/7/2022, 1:28:54 PM] [miot] [Mi Hall 2] Splitting properties into chunks. Number of chunks: 1. Chunk size: 14
[4/7/2022, 1:28:54 PM] [miot] [YL Office] Splitting properties into chunks. Number of chunks: 1. Chunk size: 14
[4/7/2022, 1:28:54 PM] [miot] [YL Living Room] Splitting properties into chunks. Number of chunks: 1. Chunk size: 14
[4/7/2022, 1:28:57 PM] [miot] [Mi Hall 1] (Protocol) Start handshake 192.168.1.56
[4/7/2022, 1:28:57 PM] [miot] [Mi Hall 1] (Protocol) 192.168.1.56 -> Handshake reply
[4/7/2022, 1:28:57 PM] [miot] [Mi Hall 1] (Protocol) 192.168.1.56 <- (0) {"method":"miIO.info","params":{"timeout":5000,"retries":3},"id":3819}
[4/7/2022, 1:28:57 PM] [miot] [Mi Hall 1] (Protocol) 192.168.1.56 <- !1p��5�i{�~����,�F!���
[4/7/2022, 1:29:01 PM] [miot] [Mi Hall 1] (Protocol) 192.168.1.56 <- Reached maximum number of retries, giving up miIO.info - {"timeout":5000,"retries":3}
[4/7/2022, 1:29:01 PM] [miot] [Mi Hall 1] Error: Call to device timed out
[4/7/2022, 1:29:01 PM] [miot] [Mi Hall 1] Could not connect to the device! Retrying in 40 seconds!
[4/7/2022, 1:29:04 PM] [miot] [YL Maria's] Splitting properties into chunks. Number of chunks: 1. Chunk size: 14
[4/7/2022, 1:29:04 PM] [miot] [Mi Hall 2] Splitting properties into chunks. Number of chunks: 1. Chunk size: 14
[4/7/2022, 1:29:04 PM] [miot] [YL Office] Splitting properties into chunks. Number of chunks: 1. Chunk size: 14
[4/7/2022, 1:29:04 PM] [miot] [YL Living Room] Splitting properties into chunks. Number of chunks: 1. Chunk size: 14
Screenshots

Thank you !

My suspicion would be that the information in your micloud account might be not up to date, like the ip or token might be incorrect. You should try to reset the device and re-add to your account.

Thank you for the suggestion. I reseted the lamp and added back to my account.
I then run the Discover all Devices via Micloud and nothing changed, same token, device name, ip address and server (cn).
Same unreachable behaviour as before, how could I refresh my Mi account data?

Re-add the device in your mi home app.

I re-added it to my account, re-enabled LAN control but without solving the problem.
Maybe this one lamp is different somehow and does not update with the Mi server or country.
My problem seems not to be related to the plugin itself, so you can close this issue if there are no further suggestions.

The lamp is the the same model as the other working lamp which you got, so this lamp should also work. Seeing that the handshake is failing indicates that it is probably the token what is wrong.

Thanks, I will try to retrieve the token in another way.

Problem solved. Extracted the tokens from an iOS backup with DB browser.
All tokens, except for the problematic lamp were correctly extracted.
I used the new token for the Mi Hall 1 lamp and it worked like  charm.

Perfect, good to hear :) For some reason the token for that device is outdated in your micloud account... not sure why.

authors: merdok vskal

repo: merdok/homebridge-miot


text:
Redundant method calls in SSA form

Describe the bug
The generated SSA form recalculates method calls over and over again instead of replacing them.
To Reproduce
Steps to reproduce the behavior:

Use the following code:

class Throw {
    int g;
    int v;
    int a;
    int h;

    public int sqrt(int a) {
        return a;
    }

    public int Tcos(int a) {
        return 1 - a*a/2;
    }

    public int Tsin(int a) {
        return a - a*a*a/6;
    }

    public int w(int t) {
        return v*Tcos(a)*(v*Tsin(a)+ sqrt((v*Tsin(a))*(v*Tsin(a))+2*g*h))/g;
    }
}

Run with arguments --graphical --skip-after SSAFORM

Convert to image (e.g. using dot -Tpng Throw.java > Throw.png)

The w method has many calls to Tsin(a) and hence muls with v

Expected behavior
Tsin(a) should not be calculated over and over again; the following SSA form was expected:
10: DISPATCH 'Throw', 'Tcos', 'this', a
11: mul v, (10)
12: DISPATCH 'Throw', 'Tsin', 'this', a
13: mul v, (12)
14: mul (13), (13) // new
15: mul 2, g
16: mul (15), h
17: add (14), (16)
18: DISPATCH 'Throw', 'sqrt', 'this', (17)
19: add (13), (18) // new
...

The problem with this setup is that the compiler does not know whether the methods rely on some fields of the class that could have been changed meanwhile. Hence, it is perfectly fine for the compiler to generate individual calls. From a single-threaded point of view, the compiler could probably check whether the above case happens in the program, but that tendentially contradicts the overall goal of this project, i.e. being simple and easy to understand for beginners.

repo: merkrafter/Merkompiler


text:
Empty body while getting badges from Trailhead

Hey Sir,
I am hitting callout on https://go-trailhead-leaderboard-api.herokuapp.com/trailblazer/sanjay07/badges or .../badges/superbadge
and gettting status code 200 and status OK .
But it 's response body is empty.
Thanks
Sanjay Prajapat

@sanjayprajapat please see #13 on my leaderboard API repo. This repo is for the leaderboard UI. I've already logged this as an issue there.
Trailhead constantly changes their website and I need to update the API repo manually to handle it. I haven't been able to do so nor have I looked into it yet so I don't know if it's still possible to access the data. I will be closing this issue in favor of the other one.

authors: meruff sanjayprajapat

repo: meruff/trailhead-leaderboard


text:
I don't want to open emoji picker with ":" sign.

Hello, actually I've add emojiareaone in bootstrap uib-dialog, when I type colon sign (:) its open emojis list but its hide behind the dialog. So I think its not good to open that list just user emojis picker.
Pls help,.

set autocomplete to false
$(".emojionearea").emojioneArea({
    autocompleteTones: true
});

ref https://github.com/mervick/emojionearea#autocomplete

thnks

authors: mervick yasir-rafiq

repo: mervick/emojionearea

license: mit


text:
UPDATE/Lorem Ipsum on Catalog Pages

Signed-off-by: Eeshaan Sawant eeshaans1@gmail.com
Description
Fixed an error where the new wasm filters and some of the meshery pattern cards showed placeholder texts instead of relevant information.
This PR fixes #768
Notes for Reviewers
Just removed the placeholder texts, I need more iformation on the exact information that needs to be put in. Please fill me on that.
Signed commits

[x] Yes, I signed my commits.

@eeshaanSA you can fill What does this pattern does? section with information situated here. https://www.opensourceagenda.com/projects/wasm-filters

sure.

also, @asubedy, any idea what goes into the caveats and consideration section of these filters?

Because as of now, I can see that some filters have the info filled, but the caveats and consideration part is still filled with filler text.

This was all the information I could find from those links, @asubedy. There are still some filters and patterns remaining.

Can we have this information merged, atleast?

// @asubedy

@eeshaanSA a few merge conflicts have popped up. Will address these?

Will try to fix it asap.

@leecalcote @asubedy  can you check?

authors: asubedy eeshaanSA leecalcote


text:
Skip dry run for meshery defined apiVersions in Meshmodel components

Signed-off-by: Ashish Tiwari ashishjaitiwari15112000@gmail.com
Notes for Reviewers
This PR fixes #
Signed commits

[ ] Yes, I signed my commits.

Codecov Report
Base: 16.54% // Head: 16.54% // Decreases project coverage by -0.01% :warning:

Coverage data is based on head (b4a5a0f) compared to base (9533c63).
Patch coverage: 0.00% of modified lines in pull request are covered.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #7054      +/-   ##
==========================================
- Coverage   16.54%   16.54%   -0.01%
==========================================
  Files         118      118
  Lines       16143    16145       +2
==========================================
  Hits         2671     2671
- Misses      12991    12993       +2
  Partials      481      481

Flag
Coverage Δ

e2etests
∅ <ø> (?)

gointegrationtests
5.69% <0.00%> (-0.01%)
:arrow_down:

unittests
12.30% <0.00%> (-0.01%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

server/models/pattern/stages/dry_run.go
0.00% <0.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

authors: Revolyssup codecov-commenter

repo: meshery/meshery


text:
updating node version for artifact workflow actions

Notes for Reviewers
This PR fixes for nginx workflow adapter
The artifact-action workflow version v2 is deprecated i am adding necessary  updates  for workflow to run smoothly.
Signed commits

[ ] Yes, I signed my commits.

I created a pr in the meshery nginx adapter codebase to fix its failing e2e tests, when running artifacts.
The nginx adpter relies on Meshery to upload artifact result as they are been run/tested on different k8 clusters in meshery.
So i am working on updates to fix the artifact action, the initial version v2 has been deprecated so i updated to v3 which supports node16 for running actions.


text:
Please add me

Hi! I'd like to add support for https://github.com/lh3/minimap2

Created repository. Please file a MR against that with the definitions. Thanks.

authors: armintoepfer jpakkane

repo: mesonbuild/wrapweb


text:
Problem with port reservations

I was trying to create a MongoDB ReplicaSet framework with dcos-commons. Therefore, I use the following YAML:
name: "mongodb-replicaset"
principal: "mongodb-replicaset-principal"
zookeeper: master.mesos:2181
api-port: {{PORT0}}
replacement-failure-policy:
  permanent-failure-timeout-ms: 10
  min-replace-delay-ms: 10
pods:
  mongodb:
    count: {{MONGODB_COUNT}}
    tasks:
      server:
        cpus: {{MONGODB_CPUS}}
        memory: {{MONGODB_MEM}}
        ports:
          - name: mongodb-port
            port: 27017
        volumes:
          - path: mongodb-replicaset
            type: ROOT
            size: {{MONGODB_DISK}}
        goal: RUNNING
        cmd: "env && exec $MESOS_SANDBOX/mongodb-linux-x86_64-3.2.11/bin/mongod --bind_ip $LIBPROCESS_IP --port $MONGODB_PORT --dbpath $MESOS_SANDBOX/mongodb-replicaset"
        uris:
          - "https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.11.tgz"

  init:
    count: {{INIT_COUNT}}
    resource-sets:
      init-resources:
        cpus: {{INIT_CPUS}}
        memory: {{INIT_MEM}}
    tasks:
      server:
        goal: FINISHED
        cmd: "chmod +x $MESOS_SANDBOX/init.sh && chmod +x $MESOS_SANDBOX/jq-linux64 && exec $MESOS_SANDBOX/init.sh"
        uris:
          - "https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.11.tgz"
          - "https://github.com/stedolan/jq/releases/download/jq-1.5/jq-linux64"
        configurations:
          - template: "{{CONFIG_TEMPLATE_PATH}}/init.sh.mustache"
            dest: "$MESOS_SANDBOX/init.sh"
        resource-set: init-resources
        env:
          APP_NAME: {{APP_NAME}}
          ADD_DELAY: {{ADD_DELAY}}

plans:
  deploy:
    strategy: serial
    phases:
      mongodb-deploy:
        strategy: serial
        pod: mongodb
      init-deploy:
        strategy: serial
        pod: init

which produces this output in the stderr of a mongodb task:
I1129 14:25:42.112336  3535 fetcher.cpp:498] Fetcher Info: {"cache_directory":"\/tmp\/mesos\/fetch\/slaves\/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S1\/root","items":[{"action":"BYPASS_CACHE","uri":{"extract":true,"value":"https:\/\/downloads.mesosphere.com\/dcos-commons\/artifacts\/executor.zip"}},{"action":"BYPASS_CACHE","uri":{"extract":true,"value":"https:\/\/downloads.mesosphere.com\/dcos-commons\/artifacts\/jre-8u91-linux-x64.tar.gz"}},{"action":"BYPASS_CACHE","uri":{"extract":true,"value":"https:\/\/fastdl.mongodb.org\/linux\/mongodb-linux-x86_64-3.2.11.tgz"}}],"sandbox_directory":"\/var\/lib\/mesos\/slave\/slaves\/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S1\/frameworks\/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0001\/executors\/mongodb__5d95b0d3-f611-4f29-954e-812946eac80f\/runs\/046315d5-bb41-4ff7-990a-dd6e897e93de","user":"root"}
I1129 14:25:42.116713  3535 fetcher.cpp:409] Fetching URI 'https://downloads.mesosphere.com/dcos-commons/artifacts/executor.zip'
I1129 14:25:42.116732  3535 fetcher.cpp:250] Fetching directly into the sandbox directory
I1129 14:25:42.116750  3535 fetcher.cpp:187] Fetching URI 'https://downloads.mesosphere.com/dcos-commons/artifacts/executor.zip'
I1129 14:25:42.116762  3535 fetcher.cpp:134] Downloading resource from 'https://downloads.mesosphere.com/dcos-commons/artifacts/executor.zip' to '/var/lib/mesos/slave/slaves/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S1/frameworks/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0001/executors/mongodb__5d95b0d3-f611-4f29-954e-812946eac80f/runs/046315d5-bb41-4ff7-990a-dd6e897e93de/executor.zip'
I1129 14:25:45.347483  3535 fetcher.cpp:84] Extracting with command: unzip -o -d '/var/lib/mesos/slave/slaves/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S1/frameworks/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0001/executors/mongodb__5d95b0d3-f611-4f29-954e-812946eac80f/runs/046315d5-bb41-4ff7-990a-dd6e897e93de' '/var/lib/mesos/slave/slaves/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S1/frameworks/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0001/executors/mongodb__5d95b0d3-f611-4f29-954e-812946eac80f/runs/046315d5-bb41-4ff7-990a-dd6e897e93de/executor.zip'
I1129 14:25:45.736171  3535 fetcher.cpp:92] Extracted '/var/lib/mesos/slave/slaves/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S1/frameworks/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0001/executors/mongodb__5d95b0d3-f611-4f29-954e-812946eac80f/runs/046315d5-bb41-4ff7-990a-dd6e897e93de/executor.zip' into '/var/lib/mesos/slave/slaves/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S1/frameworks/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0001/executors/mongodb__5d95b0d3-f611-4f29-954e-812946eac80f/runs/046315d5-bb41-4ff7-990a-dd6e897e93de'
I1129 14:25:45.736212  3535 fetcher.cpp:547] Fetched 'https://downloads.mesosphere.com/dcos-commons/artifacts/executor.zip' to '/var/lib/mesos/slave/slaves/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S1/frameworks/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0001/executors/mongodb__5d95b0d3-f611-4f29-954e-812946eac80f/runs/046315d5-bb41-4ff7-990a-dd6e897e93de/executor.zip'
I1129 14:25:45.736218  3535 fetcher.cpp:409] Fetching URI 'https://downloads.mesosphere.com/dcos-commons/artifacts/jre-8u91-linux-x64.tar.gz'
I1129 14:25:45.736222  3535 fetcher.cpp:250] Fetching directly into the sandbox directory
I1129 14:25:45.736238  3535 fetcher.cpp:187] Fetching URI 'https://downloads.mesosphere.com/dcos-commons/artifacts/jre-8u91-linux-x64.tar.gz'
I1129 14:25:45.736245  3535 fetcher.cpp:134] Downloading resource from 'https://downloads.mesosphere.com/dcos-commons/artifacts/jre-8u91-linux-x64.tar.gz' to '/var/lib/mesos/slave/slaves/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S1/frameworks/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0001/executors/mongodb__5d95b0d3-f611-4f29-954e-812946eac80f/runs/046315d5-bb41-4ff7-990a-dd6e897e93de/jre-8u91-linux-x64.tar.gz'
I1129 14:26:02.250491  3535 fetcher.cpp:84] Extracting with command: tar -C '/var/lib/mesos/slave/slaves/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S1/frameworks/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0001/executors/mongodb__5d95b0d3-f611-4f29-954e-812946eac80f/runs/046315d5-bb41-4ff7-990a-dd6e897e93de' -xf '/var/lib/mesos/slave/slaves/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S1/frameworks/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0001/executors/mongodb__5d95b0d3-f611-4f29-954e-812946eac80f/runs/046315d5-bb41-4ff7-990a-dd6e897e93de/jre-8u91-linux-x64.tar.gz'
I1129 14:26:06.927036  3535 fetcher.cpp:92] Extracted '/var/lib/mesos/slave/slaves/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S1/frameworks/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0001/executors/mongodb__5d95b0d3-f611-4f29-954e-812946eac80f/runs/046315d5-bb41-4ff7-990a-dd6e897e93de/jre-8u91-linux-x64.tar.gz' into '/var/lib/mesos/slave/slaves/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S1/frameworks/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0001/executors/mongodb__5d95b0d3-f611-4f29-954e-812946eac80f/runs/046315d5-bb41-4ff7-990a-dd6e897e93de'
I1129 14:26:06.927079  3535 fetcher.cpp:547] Fetched 'https://downloads.mesosphere.com/dcos-commons/artifacts/jre-8u91-linux-x64.tar.gz' to '/var/lib/mesos/slave/slaves/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S1/frameworks/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0001/executors/mongodb__5d95b0d3-f611-4f29-954e-812946eac80f/runs/046315d5-bb41-4ff7-990a-dd6e897e93de/jre-8u91-linux-x64.tar.gz'
I1129 14:26:06.927085  3535 fetcher.cpp:409] Fetching URI 'https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.11.tgz'
I1129 14:26:06.927089  3535 fetcher.cpp:250] Fetching directly into the sandbox directory
I1129 14:26:06.927108  3535 fetcher.cpp:187] Fetching URI 'https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.11.tgz'
I1129 14:26:06.927114  3535 fetcher.cpp:134] Downloading resource from 'https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.11.tgz' to '/var/lib/mesos/slave/slaves/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S1/frameworks/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0001/executors/mongodb__5d95b0d3-f611-4f29-954e-812946eac80f/runs/046315d5-bb41-4ff7-990a-dd6e897e93de/mongodb-linux-x86_64-3.2.11.tgz'
I1129 14:26:24.057446  3535 fetcher.cpp:84] Extracting with command: tar -C '/var/lib/mesos/slave/slaves/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S1/frameworks/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0001/executors/mongodb__5d95b0d3-f611-4f29-954e-812946eac80f/runs/046315d5-bb41-4ff7-990a-dd6e897e93de' -xf '/var/lib/mesos/slave/slaves/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S1/frameworks/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0001/executors/mongodb__5d95b0d3-f611-4f29-954e-812946eac80f/runs/046315d5-bb41-4ff7-990a-dd6e897e93de/mongodb-linux-x86_64-3.2.11.tgz'
I1129 14:26:26.782944  3535 fetcher.cpp:92] Extracted '/var/lib/mesos/slave/slaves/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S1/frameworks/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0001/executors/mongodb__5d95b0d3-f611-4f29-954e-812946eac80f/runs/046315d5-bb41-4ff7-990a-dd6e897e93de/mongodb-linux-x86_64-3.2.11.tgz' into '/var/lib/mesos/slave/slaves/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S1/frameworks/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0001/executors/mongodb__5d95b0d3-f611-4f29-954e-812946eac80f/runs/046315d5-bb41-4ff7-990a-dd6e897e93de'
I1129 14:26:26.782984  3535 fetcher.cpp:547] Fetched 'https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.11.tgz' to '/var/lib/mesos/slave/slaves/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S1/frameworks/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0001/executors/mongodb__5d95b0d3-f611-4f29-954e-812946eac80f/runs/046315d5-bb41-4ff7-990a-dd6e897e93de/mongodb-linux-x86_64-3.2.11.tgz'
I1129 14:26:32.244952  3622 exec.cpp:161] Version: 1.0.1
I1129 14:26:32.274602  3613 exec.cpp:236] Executor registered on agent 7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S1
5804 [Thread-0] INFO org.apache.mesos.executor.CustomExecutor - Registered executor: value: "mongodb__5d95b0d3-f611-4f29-954e-812946eac80f"

7196 [Thread-1] INFO org.apache.mesos.executor.CustomExecutor - Launching task: name: "mongodb-0-server"
task_id {
  value: "mongodb-0-server__8d289aa5-f895-42d1-b1c0-ae42e89c276e"
}
slave_id {
  value: "7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S1"
}
resources {
  name: "cpus"
  type: SCALAR
  scalar {
    value: 0.1
  }
  role: "mongodb-replicaset-role"
  reservation {
    principal: "mongodb-replicaset-principal"
    labels {
      labels {
        key: "resource_id"
        value: "4d1f14ad-22f9-4c3f-a4e0-e55fc8b501ae"
      }
    }
  }
}
resources {
  name: "mem"
  type: SCALAR
  scalar {
    value: 1024.0
  }
  role: "mongodb-replicaset-role"
  reservation {
    principal: "mongodb-replicaset-principal"
    labels {
      labels {
        key: "resource_id"
        value: "9dbad0f7-4f89-446d-90f5-689b13d60a3d"
      }
    }
  }
}
resources {
  name: "disk"
  type: SCALAR
  scalar {
    value: 1000.0
  }
  role: "mongodb-replicaset-role"
  disk {
    persistence {
      id: "4f691d09-b8f2-45ff-bcd1-574897ae79cb"
      principal: "mongodb-replicaset-principal"
    }
    volume {
      container_path: "mongodb-replicaset"
      mode: RW
    }
  }
  reservation {
    principal: "mongodb-replicaset-principal"
    labels {
      labels {
        key: "resource_id"
        value: "302ebe5c-25a9-47cb-ad48-4f39da4630c4"
      }
    }
  }
}
executor {
  executor_id {
    value: "mongodb__5d95b0d3-f611-4f29-954e-812946eac80f"
  }
  command {
    uris {
      value: "https://downloads.mesosphere.com/dcos-commons/artifacts/executor.zip"
    }
    uris {
      value: "https://downloads.mesosphere.com/dcos-commons/artifacts/jre-8u91-linux-x64.tar.gz"
    }
    uris {
      value: "https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.11.tgz"
    }
    environment {
      variables {
        name: "JAVA_HOME"
        value: "jre1.8.0_91"
      }
    }
    value: "./executor/bin/executor"
  }
  framework_id {
    value: "7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0001"
  }
  name: "mongodb"
}
data: "\n\037\n\035command_data_package_executor\"\335\032\n\037\n\035command_data_package_executor\"\272\030\n\037\n\035command_data_package_executor\"\227\026\n\037\n\035command_data_package_executor\"\364\023\n\037\n\035command_data_package_executor\"\321\021\n\037\n\035command_data_package_executor\"\256\017\n\037\n\035command_data_package_executor\"\213\r\n\037\n\035command_data_package_executor\"\350\n\n\037\n\035command_data_package_executor\"\305\b\n\037\n\035command_data_package_executor\"\242\006\n\037\n\035command_data_package_executor\"\377\003\n\037\n\035command_data_package_executor\"\334\001\n\037\n\035command_data_package_executor:\270\001\022\031\n\027\n\022POD_INSTANCE_INDEX\022\0010\032\232\001env && exec $MESOS_SANDBOX/mongodb-linux-x86_64-3.2.11/bin/mongod --bind_ip $LIBPROCESS_IP --port $MONGODB_PORT --dbpath $MESOS_SANDBOX/mongodb-replicaset:\374\001\nB\n@https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.11.tgz\022\031\n\027\n\022POD_INSTANCE_INDEX\022\0010\032\232\001env && exec $MESOS_SANDBOX/mongodb-linux-x86_64-3.2.11/bin/mongod --bind_ip $LIBPROCESS_IP --port $MONGODB_PORT --dbpath $MESOS_SANDBOX/mongodb-replicaset:\374\001\nB\n@https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.11.tgz\022\031\n\027\n\022POD_INSTANCE_INDEX\022\0010\032\232\001env && exec $MESOS_SANDBOX/mongodb-linux-x86_64-3.2.11/bin/mongod --bind_ip $LIBPROCESS_IP --port $MONGODB_PORT --dbpath $MESOS_SANDBOX/mongodb-replicaset:\374\001\nB\n@https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.11.tgz\022\031\n\027\n\022POD_INSTANCE_INDEX\022\0010\032\232\001env && exec $MESOS_SANDBOX/mongodb-linux-x86_64-3.2.11/bin/mongod --bind_ip $LIBPROCESS_IP --port $MONGODB_PORT --dbpath $MESOS_SANDBOX/mongodb-replicaset:\374\001\nB\n@https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.11.tgz\022\031\n\027\n\022POD_INSTANCE_INDEX\022\0010\032\232\001env && exec $MESOS_SANDBOX/mongodb-linux-x86_64-3.2.11/bin/mongod --bind_ip $LIBPROCESS_IP --port $MONGODB_PORT --dbpath $MESOS_SANDBOX/mongodb-replicaset:\374\001\nB\n@https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.11.tgz\022\031\n\027\n\022POD_INSTANCE_INDEX\022\0010\032\232\001env && exec $MESOS_SANDBOX/mongodb-linux-x86_64-3.2.11/bin/mongod --bind_ip $LIBPROCESS_IP --port $MONGODB_PORT --dbpath $MESOS_SANDBOX/mongodb-replicaset:\374\001\nB\n@https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.11.tgz\022\031\n\027\n\022POD_INSTANCE_INDEX\022\0010\032\232\001env && exec $MESOS_SANDBOX/mongodb-linux-x86_64-3.2.11/bin/mongod --bind_ip $LIBPROCESS_IP --port $MONGODB_PORT --dbpath $MESOS_SANDBOX/mongodb-replicaset:\374\001\nB\n@https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.11.tgz\022\031\n\027\n\022POD_INSTANCE_INDEX\022\0010\032\232\001env && exec $MESOS_SANDBOX/mongodb-linux-x86_64-3.2.11/bin/mongod --bind_ip $LIBPROCESS_IP --port $MONGODB_PORT --dbpath $MESOS_SANDBOX/mongodb-replicaset:\374\001\nB\n@https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.11.tgz\022\031\n\027\n\022POD_INSTANCE_INDEX\022\0010\032\232\001env && exec $MESOS_SANDBOX/mongodb-linux-x86_64-3.2.11/bin/mongod --bind_ip $LIBPROCESS_IP --port $MONGODB_PORT --dbpath $MESOS_SANDBOX/mongodb-replicaset:\374\001\nB\n@https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.11.tgz\022\031\n\027\n\022POD_INSTANCE_INDEX\022\0010\032\232\001env && exec $MESOS_SANDBOX/mongodb-linux-x86_64-3.2.11/bin/mongod --bind_ip $LIBPROCESS_IP --port $MONGODB_PORT --dbpath $MESOS_SANDBOX/mongodb-replicaset:\374\001\nB\n@https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.11.tgz\022\031\n\027\n\022POD_INSTANCE_INDEX\022\0010\032\232\001env && exec $MESOS_SANDBOX/mongodb-linux-x86_64-3.2.11/bin/mongod --bind_ip $LIBPROCESS_IP --port $MONGODB_PORT --dbpath $MESOS_SANDBOX/mongodb-replicaset:\374\001\nB\n@https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.11.tgz\022\031\n\027\n\022POD_INSTANCE_INDEX\022\0010\032\232\001env && exec $MESOS_SANDBOX/mongodb-linux-x86_64-3.2.11/bin/mongod --bind_ip $LIBPROCESS_IP --port $MONGODB_PORT --dbpath $MESOS_SANDBOX/mongodb-replicaset:\374\001\nB\n@https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.11.tgz\022\031\n\027\n\022POD_INSTANCE_INDEX\022\0010\032\232\001env && exec $MESOS_SANDBOX/mongodb-linux-x86_64-3.2.11/bin/mongod --bind_ip $LIBPROCESS_IP --port $MONGODB_PORT --dbpath $MESOS_SANDBOX/mongodb-replicaset"
labels {
  labels {
    key: "target_configuration"
    value: "e7bfde1f-afab-4c09-bad8-40ef94f85b2e"
  }
  labels {
    key: "offer_attributes"
    value: ""
  }
  labels {
    key: "task_type"
    value: "mongodb"
  }
  labels {
    key: "index"
    value: "0"
  }
  labels {
    key: "offer_hostname"
    value: "172.17.0.4"
  }
}

7799 [Thread-1] INFO org.apache.mesos.offer.TaskUtils - Setting up config files
7801 [Thread-1] INFO org.apache.mesos.executor.CustomExecutor - No health check for task: mongodb-0-server
7801 [pool-2-thread-1] INFO org.apache.mesos.executor.ProcessTask - Executing command: [/bin/sh, -c, env && exec $MESOS_SANDBOX/mongodb-linux-x86_64-3.2.11/bin/mongod --bind_ip $LIBPROCESS_IP --port $MONGODB_PORT --dbpath $MESOS_SANDBOX/mongodb-replicaset]
7895 [pool-2-thread-1] INFO org.apache.mesos.executor.ProcessTask - With Environment: {MESOS_EXECUTOR_SHUTDOWN_GRACE_PERIOD=5secs, PATH=/usr/bin:/bin, LIBPROCESS_NUM_WORKER_THREADS=8, JAVA_HOME=jre1.8.0_91, MESOS_SLAVE_ID=7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S1, MESOS_HTTP_COMMAND_EXECUTOR=0, XFILESEARCHPATH=/usr/dt/app-defaults/%L/Dt, MESOS_SUBSCRIPTION_BACKOFF_MAX=2secs, LIBPROCESS_PORT=0, MESOS_NATIVE_LIBRARY=/opt/mesosphere/packages/mesos--253f5cb0a96e2e3574293ddfecf5c63358527377/lib/libmesos-1.0.1.so, MESOS_SANDBOX=/var/lib/mesos/slave/slaves/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S1/frameworks/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0001/executors/mongodb__5d95b0d3-f611-4f29-954e-812946eac80f/runs/046315d5-bb41-4ff7-990a-dd6e897e93de, MESOS_NATIVE_JAVA_LIBRARY=/opt/mesosphere/packages/mesos--253f5cb0a96e2e3574293ddfecf5c63358527377/lib/libmesos-1.0.1.so, MESOS_EXECUTOR_ID=mongodb__5d95b0d3-f611-4f29-954e-812946eac80f, LD_LIBRARY_PATH=/opt/mesosphere/lib, MESOS_FRAMEWORK_ID=7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0001, PWD=/var/lib/mesos/slave/slaves/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S1/frameworks/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0001/executors/mongodb__5d95b0d3-f611-4f29-954e-812946eac80f/runs/046315d5-bb41-4ff7-990a-dd6e897e93de, MESOS_DIRECTORY=/var/lib/mesos/slave/slaves/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S1/frameworks/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0001/executors/mongodb__5d95b0d3-f611-4f29-954e-812946eac80f/runs/046315d5-bb41-4ff7-990a-dd6e897e93de, POD_INSTANCE_INDEX=0, SHELL=/usr/bin/bash, MESOS_AGENT_ENDPOINT=172.17.0.4:5051, LIBPROCESS_IP=172.17.0.4, MESOS_CHECKPOINT=1, OLDPWD=/var/lib/mesos/slave/slaves/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S1/frameworks/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0001/executors/mongodb__5d95b0d3-f611-4f29-954e-812946eac80f/runs/046315d5-bb41-4ff7-990a-dd6e897e93de/executor, SASL_PATH=/opt/mesosphere/lib/sasl2, MESOS_RECOVERY_TIMEOUT=15mins, MESOS_SLAVE_PID=slave(1)@172.17.0.4:5051, NLSPATH=/usr/dt/lib/nls/msg/%L/%N.cat, SHLVL=1}
10500 [pool-2-thread-1] INFO org.apache.mesos.executor.ProcessTask - Launched Process of type: mongodb
Error parsing option "port" as int: Bad digit "-" while parsing --dbpath
try '/var/lib/mesos/slave/slaves/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S1/frameworks/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0001/executors/mongodb__5d95b0d3-f611-4f29-954e-812946eac80f/runs/046315d5-bb41-4ff7-990a-dd6e897e93de/mongodb-linux-x86_64-3.2.11/bin/mongod --help' for more information

As seen in the logs, the port reservation is missing. Is there something wrong with my YAML? I compared this to the example frameworks, and it seems fine.
There's also no $MONGODB_PORT environment variable set subsequently. Is there somewhere a description on how to use port env vars?

@tobilg Did you tried running this with the latest master ? Because this got merged recently, which fixes the problem with port reservation.

Thanks for the fast feedback! It looks like the above YAML still won't reserve a port (after I did a git pull on master):
I1129 16:49:05.054321  5461 fetcher.cpp:498] Fetcher Info: {"cache_directory":"\/tmp\/mesos\/fetch\/slaves\/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S0\/root","items":[{"action":"BYPASS_CACHE","uri":{"extract":true,"value":"https:\/\/downloads.mesosphere.com\/dcos-commons\/artifacts\/executor.zip"}},{"action":"BYPASS_CACHE","uri":{"extract":true,"value":"https:\/\/downloads.mesosphere.com\/dcos-commons\/artifacts\/jre-8u91-linux-x64.tar.gz"}},{"action":"BYPASS_CACHE","uri":{"extract":true,"value":"https:\/\/fastdl.mongodb.org\/linux\/mongodb-linux-x86_64-3.2.11.tgz"}}],"sandbox_directory":"\/var\/lib\/mesos\/slave\/slaves\/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S0\/frameworks\/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0006\/executors\/mongodb__b9daf012-588b-4eb0-affc-cf2f95944b08\/runs\/258c64b4-be77-4a98-a625-873cbdc8cbe1","user":"root"}
I1129 16:49:05.056447  5461 fetcher.cpp:409] Fetching URI 'https://downloads.mesosphere.com/dcos-commons/artifacts/executor.zip'
I1129 16:49:05.056462  5461 fetcher.cpp:250] Fetching directly into the sandbox directory
I1129 16:49:05.056478  5461 fetcher.cpp:187] Fetching URI 'https://downloads.mesosphere.com/dcos-commons/artifacts/executor.zip'
I1129 16:49:05.056489  5461 fetcher.cpp:134] Downloading resource from 'https://downloads.mesosphere.com/dcos-commons/artifacts/executor.zip' to '/var/lib/mesos/slave/slaves/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S0/frameworks/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0006/executors/mongodb__b9daf012-588b-4eb0-affc-cf2f95944b08/runs/258c64b4-be77-4a98-a625-873cbdc8cbe1/executor.zip'
I1129 16:49:07.643525  5461 fetcher.cpp:84] Extracting with command: unzip -o -d '/var/lib/mesos/slave/slaves/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S0/frameworks/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0006/executors/mongodb__b9daf012-588b-4eb0-affc-cf2f95944b08/runs/258c64b4-be77-4a98-a625-873cbdc8cbe1' '/var/lib/mesos/slave/slaves/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S0/frameworks/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0006/executors/mongodb__b9daf012-588b-4eb0-affc-cf2f95944b08/runs/258c64b4-be77-4a98-a625-873cbdc8cbe1/executor.zip'
I1129 16:49:07.839854  5461 fetcher.cpp:92] Extracted '/var/lib/mesos/slave/slaves/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S0/frameworks/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0006/executors/mongodb__b9daf012-588b-4eb0-affc-cf2f95944b08/runs/258c64b4-be77-4a98-a625-873cbdc8cbe1/executor.zip' into '/var/lib/mesos/slave/slaves/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S0/frameworks/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0006/executors/mongodb__b9daf012-588b-4eb0-affc-cf2f95944b08/runs/258c64b4-be77-4a98-a625-873cbdc8cbe1'
I1129 16:49:07.839886  5461 fetcher.cpp:547] Fetched 'https://downloads.mesosphere.com/dcos-commons/artifacts/executor.zip' to '/var/lib/mesos/slave/slaves/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S0/frameworks/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0006/executors/mongodb__b9daf012-588b-4eb0-affc-cf2f95944b08/runs/258c64b4-be77-4a98-a625-873cbdc8cbe1/executor.zip'
I1129 16:49:07.839891  5461 fetcher.cpp:409] Fetching URI 'https://downloads.mesosphere.com/dcos-commons/artifacts/jre-8u91-linux-x64.tar.gz'
I1129 16:49:07.839895  5461 fetcher.cpp:250] Fetching directly into the sandbox directory
I1129 16:49:07.839908  5461 fetcher.cpp:187] Fetching URI 'https://downloads.mesosphere.com/dcos-commons/artifacts/jre-8u91-linux-x64.tar.gz'
I1129 16:49:07.839915  5461 fetcher.cpp:134] Downloading resource from 'https://downloads.mesosphere.com/dcos-commons/artifacts/jre-8u91-linux-x64.tar.gz' to '/var/lib/mesos/slave/slaves/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S0/frameworks/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0006/executors/mongodb__b9daf012-588b-4eb0-affc-cf2f95944b08/runs/258c64b4-be77-4a98-a625-873cbdc8cbe1/jre-8u91-linux-x64.tar.gz'
I1129 16:49:15.066257  5461 fetcher.cpp:84] Extracting with command: tar -C '/var/lib/mesos/slave/slaves/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S0/frameworks/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0006/executors/mongodb__b9daf012-588b-4eb0-affc-cf2f95944b08/runs/258c64b4-be77-4a98-a625-873cbdc8cbe1' -xf '/var/lib/mesos/slave/slaves/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S0/frameworks/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0006/executors/mongodb__b9daf012-588b-4eb0-affc-cf2f95944b08/runs/258c64b4-be77-4a98-a625-873cbdc8cbe1/jre-8u91-linux-x64.tar.gz'
I1129 16:49:16.863962  5461 fetcher.cpp:92] Extracted '/var/lib/mesos/slave/slaves/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S0/frameworks/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0006/executors/mongodb__b9daf012-588b-4eb0-affc-cf2f95944b08/runs/258c64b4-be77-4a98-a625-873cbdc8cbe1/jre-8u91-linux-x64.tar.gz' into '/var/lib/mesos/slave/slaves/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S0/frameworks/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0006/executors/mongodb__b9daf012-588b-4eb0-affc-cf2f95944b08/runs/258c64b4-be77-4a98-a625-873cbdc8cbe1'
I1129 16:49:16.864001  5461 fetcher.cpp:547] Fetched 'https://downloads.mesosphere.com/dcos-commons/artifacts/jre-8u91-linux-x64.tar.gz' to '/var/lib/mesos/slave/slaves/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S0/frameworks/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0006/executors/mongodb__b9daf012-588b-4eb0-affc-cf2f95944b08/runs/258c64b4-be77-4a98-a625-873cbdc8cbe1/jre-8u91-linux-x64.tar.gz'
I1129 16:49:16.864055  5461 fetcher.cpp:409] Fetching URI 'https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.11.tgz'
I1129 16:49:16.864065  5461 fetcher.cpp:250] Fetching directly into the sandbox directory
I1129 16:49:16.864083  5461 fetcher.cpp:187] Fetching URI 'https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.11.tgz'
I1129 16:49:16.864091  5461 fetcher.cpp:134] Downloading resource from 'https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.11.tgz' to '/var/lib/mesos/slave/slaves/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S0/frameworks/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0006/executors/mongodb__b9daf012-588b-4eb0-affc-cf2f95944b08/runs/258c64b4-be77-4a98-a625-873cbdc8cbe1/mongodb-linux-x86_64-3.2.11.tgz'
I1129 16:49:25.991869  5461 fetcher.cpp:84] Extracting with command: tar -C '/var/lib/mesos/slave/slaves/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S0/frameworks/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0006/executors/mongodb__b9daf012-588b-4eb0-affc-cf2f95944b08/runs/258c64b4-be77-4a98-a625-873cbdc8cbe1' -xf '/var/lib/mesos/slave/slaves/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S0/frameworks/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0006/executors/mongodb__b9daf012-588b-4eb0-affc-cf2f95944b08/runs/258c64b4-be77-4a98-a625-873cbdc8cbe1/mongodb-linux-x86_64-3.2.11.tgz'
I1129 16:49:28.333284  5461 fetcher.cpp:92] Extracted '/var/lib/mesos/slave/slaves/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S0/frameworks/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0006/executors/mongodb__b9daf012-588b-4eb0-affc-cf2f95944b08/runs/258c64b4-be77-4a98-a625-873cbdc8cbe1/mongodb-linux-x86_64-3.2.11.tgz' into '/var/lib/mesos/slave/slaves/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S0/frameworks/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0006/executors/mongodb__b9daf012-588b-4eb0-affc-cf2f95944b08/runs/258c64b4-be77-4a98-a625-873cbdc8cbe1'
I1129 16:49:28.333369  5461 fetcher.cpp:547] Fetched 'https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.11.tgz' to '/var/lib/mesos/slave/slaves/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S0/frameworks/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0006/executors/mongodb__b9daf012-588b-4eb0-affc-cf2f95944b08/runs/258c64b4-be77-4a98-a625-873cbdc8cbe1/mongodb-linux-x86_64-3.2.11.tgz'
I1129 16:49:32.093878  5503 exec.cpp:161] Version: 1.0.1
I1129 16:49:32.196799  5494 exec.cpp:236] Executor registered on agent 7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S0
4396 [Thread-0] INFO org.apache.mesos.executor.CustomExecutor - Registered executor: value: "mongodb__b9daf012-588b-4eb0-affc-cf2f95944b08"

5298 [Thread-1] INFO org.apache.mesos.executor.CustomExecutor - Launching task: name: "mongodb-1-server"
task_id {
  value: "mongodb-1-server__bc2fc75e-3a7f-4a2f-b5a8-c07983b26a92"
}
slave_id {
  value: "7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S0"
}
resources {
  name: "cpus"
  type: SCALAR
  scalar {
    value: 0.1
  }
  role: "mongodb-replicaset-role"
  reservation {
    principal: "mongodb-replicaset-principal"
    labels {
      labels {
        key: "resource_id"
        value: "31a20a68-9d07-4377-8e40-8672d14d5fdf"
      }
    }
  }
}
resources {
  name: "mem"
  type: SCALAR
  scalar {
    value: 1024.0
  }
  role: "mongodb-replicaset-role"
  reservation {
    principal: "mongodb-replicaset-principal"
    labels {
      labels {
        key: "resource_id"
        value: "cb6a8359-97cd-468f-99af-27c94e5ea30f"
      }
    }
  }
}
resources {
  name: "disk"
  type: SCALAR
  scalar {
    value: 1000.0
  }
  role: "mongodb-replicaset-role"
  disk {
    persistence {
      id: "c8833634-dc35-40ab-905d-79fea5c552e0"
      principal: "mongodb-replicaset-principal"
    }
    volume {
      container_path: "mongodb-replicaset"
      mode: RW
    }
  }
  reservation {
    principal: "mongodb-replicaset-principal"
    labels {
      labels {
        key: "resource_id"
        value: "dd30ea46-a24c-4c27-b8c1-c3458634ddb2"
      }
    }
  }
}
executor {
  executor_id {
    value: "mongodb__b9daf012-588b-4eb0-affc-cf2f95944b08"
  }
  command {
    uris {
      value: "https://downloads.mesosphere.com/dcos-commons/artifacts/executor.zip"
    }
    uris {
      value: "https://downloads.mesosphere.com/dcos-commons/artifacts/jre-8u91-linux-x64.tar.gz"
    }
    uris {
      value: "https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.11.tgz"
    }
    environment {
      variables {
        name: "JAVA_HOME"
        value: "jre1.8.0_91"
      }
    }
    value: "./executor/bin/executor"
  }
  framework_id {
    value: "7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0006"
  }
  name: "mongodb"
}
data: "\n\037\n\035command_data_package_executor:\260\001\022\031\n\027\n\022POD_INSTANCE_INDEX\022\0011\032\222\001env && exec $MESOS_SANDBOX/mongodb-linux-x86_64-3.2.11/bin/mongod --bind_ip $LIBPROCESS_IP --port 27017 --dbpath $MESOS_SANDBOX/mongodb-replicaset"
labels {
  labels {
    key: "target_configuration"
    value: "4b10fbd4-1c6b-47af-94f4-fe6f7c194925"
  }
  labels {
    key: "offer_attributes"
    value: ""
  }
  labels {
    key: "task_type"
    value: "mongodb"
  }
  labels {
    key: "index"
    value: "1"
  }
  labels {
    key: "offer_hostname"
    value: "172.17.0.3"
  }
}

5601 [Thread-1] INFO org.apache.mesos.offer.TaskUtils - Setting up config files
5602 [pool-2-thread-1] INFO org.apache.mesos.executor.ProcessTask - Executing command: [/bin/sh, -c, env && exec $MESOS_SANDBOX/mongodb-linux-x86_64-3.2.11/bin/mongod --bind_ip $LIBPROCESS_IP --port 27017 --dbpath $MESOS_SANDBOX/mongodb-replicaset]
5602 [Thread-1] INFO org.apache.mesos.executor.CustomExecutor - No health check for task: mongodb-1-server
5603 [pool-2-thread-1] INFO org.apache.mesos.executor.ProcessTask - With Environment: {MESOS_EXECUTOR_SHUTDOWN_GRACE_PERIOD=5secs, PATH=/usr/bin:/bin, LIBPROCESS_NUM_WORKER_THREADS=8, JAVA_HOME=jre1.8.0_91, MESOS_SLAVE_ID=7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S0, MESOS_HTTP_COMMAND_EXECUTOR=0, XFILESEARCHPATH=/usr/dt/app-defaults/%L/Dt, MESOS_SUBSCRIPTION_BACKOFF_MAX=2secs, LIBPROCESS_PORT=0, MESOS_NATIVE_LIBRARY=/opt/mesosphere/packages/mesos--253f5cb0a96e2e3574293ddfecf5c63358527377/lib/libmesos-1.0.1.so, MESOS_SANDBOX=/var/lib/mesos/slave/slaves/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S0/frameworks/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0006/executors/mongodb__b9daf012-588b-4eb0-affc-cf2f95944b08/runs/258c64b4-be77-4a98-a625-873cbdc8cbe1, MESOS_NATIVE_JAVA_LIBRARY=/opt/mesosphere/packages/mesos--253f5cb0a96e2e3574293ddfecf5c63358527377/lib/libmesos-1.0.1.so, MESOS_EXECUTOR_ID=mongodb__b9daf012-588b-4eb0-affc-cf2f95944b08, LD_LIBRARY_PATH=/opt/mesosphere/lib, MESOS_FRAMEWORK_ID=7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0006, PWD=/var/lib/mesos/slave/slaves/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S0/frameworks/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0006/executors/mongodb__b9daf012-588b-4eb0-affc-cf2f95944b08/runs/258c64b4-be77-4a98-a625-873cbdc8cbe1, MESOS_DIRECTORY=/var/lib/mesos/slave/slaves/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S0/frameworks/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0006/executors/mongodb__b9daf012-588b-4eb0-affc-cf2f95944b08/runs/258c64b4-be77-4a98-a625-873cbdc8cbe1, POD_INSTANCE_INDEX=1, SHELL=/usr/bin/bash, MESOS_AGENT_ENDPOINT=172.17.0.3:5051, LIBPROCESS_IP=172.17.0.3, MESOS_CHECKPOINT=1, OLDPWD=/var/lib/mesos/slave/slaves/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-S0/frameworks/7c1d3cb8-8a4e-488f-b8e6-3a332f384e84-0006/executors/mongodb__b9daf012-588b-4eb0-affc-cf2f95944b08/runs/258c64b4-be77-4a98-a625-873cbdc8cbe1/executor, SASL_PATH=/opt/mesosphere/lib/sasl2, MESOS_RECOVERY_TIMEOUT=15mins, MESOS_SLAVE_PID=slave(1)@172.17.0.3:5051, NLSPATH=/usr/dt/lib/nls/msg/%L/%N.cat, SHLVL=1}
7398 [pool-2-thread-1] INFO org.apache.mesos.executor.ProcessTask - Launched Process of type: mongodb

Ah, I think I understand... This was only fixed on resource-set level, right? And currently I don't use those...

Tried with resource-set, unfortunately still no port resource reservation.

Reservation of ports is working now.

authors: mohitsoni tobilg

repo: mesosphere/dcos-commons


text:
Constraint: Slave that can only run one kind of app

Apologies if this is spelled out in the doc, I'm having trouble understanding how to get what I need done. I have 3 slaves with the attributes group:dns.  What I would like is for only apps with the specified [group, CLUSTER, dns] constraint to run on slaves with the group:dns and for other apps to be prevented from launching tasks on those slaves.
It seems mesos exposed this through roles in resources, but I can't seem to see how to set cpu/mem/disk resource as anything other than a scalar value.

You can only achieve this by adding an UNLIKE constraint to all other apps. So in your case it would be
...
"constraints": ["group", "UNLIKE", "dns"]
...

You probably could create separate mesos cluster with own marathon for dns nodes.

A separate cluster shouldn't even be necessary. Having a Marathon and Mesos slaves with a different role should be sufficient.

Also there is a Mesos ticket to allow a framework to register with multiple roles. Once that has been resolved, we will also add support for that to Marathon.
https://issues.apache.org/jira/browse/MESOS-1763

authors: bobrik drexin nemothekid

repo: mesosphere/marathon


text:
Bad JSON prints java types rather than human error message

{
  "uris:": ["file:///etc/.dockercfg"]
}

when submitted to marathon makes the error message:
{"message":"Invalid JSON: JsResultException(errors:List((,List(ValidationError(error.expected.jsarray,WrappedArray())))))"}

A couple more bits about this:
It needs to be HTTP PUT to /v2/apps, the error is coming about because the marathon.json should be an array of items to add apparently (Not obvious to me in porting code from the old HTTP POST api), and isn't immediately obvious reading the changelog that PUT /v2/apps expects a different format than POST /v2/apps
PUT /v2/apps also isn't documented at http://mesosphere.github.io/marathon/docs/rest-api.html#put-/v2/apps/{appid}

Why don't you use /v2/apps/{appId}?

That would require my bash script to parse the json to figure out the appId then append that to the url...
Complicates interaction significantly. I used to just need one script which did a POST (both for creation and update) to /v2/apps, but that was removed with 0.8.1.

It has been changed because it was wrong behaviour. Trying to create an object with an existing id should be rejected. The PUT endpoint will work for both, creating and updating apps. You could use jq or something similar to extract the appId.

Of course the error message could be better.

Forcing extracting the appId considerably complicates every program which wants to use the Marathon API, and practically it is not something structurally or code-wise hard to do. There is actually more code required to make the user specify both, because internally marathon needs to verify the appIds match.
You could say the appId lives outside of the marathon.json, but then marathon.json isn't self-contained as a container launch / specification format. There are some applications where that definitely makes sense (Launching multiple marathons via marathon, one for each user). Others where I'm launching one non0instanced app and just need to update it's config from time to time, definitely don't fit.

authors: cmaloney drexin


text:
Publish TASK_KILLING as a MesosStatusUpdateEvent

Brief Background:
We are currently footing a sizable amount of traffic in our services (docker containers run via Marathon on Mesos). To alleviate issues already reported around dropping traffic due to docker containers being killed before the marathon-lb gets a chance to update the HAProxy config, we are trying to enable and propagate the TASK_KILLING state in Marathon.  We intend to modify marathon-lb to listen to this event and suppress the generation of backends for containers that are being killed.
To this end, we are looking for ways to let Marathon propagate the TASK_KILLING state that it receives from Marathon. Is there an ETA on when this might come to pass ?
We had previously made this change using a modified task killed message to the same effect. But that process is quite fragmented as task killing is strewn across many actors currently in Marathon (TaskReplaceActor, TaskKillActor .. a few others as well). Is it possible to maybe then, atleast indicate what would be a way to propogate said TASK_KILLING event such we may contribute back to the core?
Thanks!

TASK_KILLING is currently suppressed in TaskStatusUpdateProcessorImpl.publish(). It's not abig deal to process it and publish a MesosStatusUpdateEvent; we just need to drop the suppression handle and write a test to verify the status gets published
@aquamatthias this could easily done somewhere in between, feel free to assign :)

@tadanki on it, won't take long

Cool! Thats great turn around you guys!
I actually managed to fix it on our end yesterday by modifying - /src/main/scala/mesosphere/marathon/core/task/update/impl/TaskStatusUpdateProcessorImpl.scala
/src/main/scala/mesosphere/marathon/core/task/Task.scala
We added a Terminating( _ ) check and let the TaskStateOpProcessor forward the message and put it on the Event Bus. this doesnt show on the HTTP endpoint subscription, but marathon-lb's subscription sees it and we can now eject backends before they get killed!
I am building on top of your latest stable tag to be able to put in PROD quicker, but will move to your fix soon as we can.
Cheers !

authors: meichstedt tadanki


text:
Release kibana 2.3.0-5.6.5 (automated commit)

Release kibana 2.3.0-5.6.5 (automated commit)
Description:
Source URL: https://infinity-artifacts.s3.amazonaws.com/permanent/kibana/assets/2.3.0-5.6.5-rc1/stub-universe-kibana.json
Changes between revisions 100 => 200:
0 files added: []
0 files removed: []
2 files changed:
--- 100/marathon.json.mustache
+++ 200/marathon.json.mustache
@@ -4,7 +4,7 @@
   "mem": {{kibana.mem}},
   "instances": 1,
   "user": "{{service.user}}",
-  "cmd": "echo -e \"elasticsearch.url: $ELASTICSEARCH_URL\nelasticsearch.username: $KIBANA_USER\nelasticsearch.password: $KIBANA_PASSWORD\nserver.host: 0.0.0.0\nserver.port: $PORT_KIBANA\nserver.basePath: /service/$FRAMEWORK_NAME\" > $MESOS_SANDBOX/kibana-$ELASTIC_VERSION-linux-x86_64/config/kibana.yml; if [ \"$XPACK_ENABLED\" = true ]; then echo -e \"\nxpack.security.encryptionKey: $MESOS_FRAMEWORK_ID\nxpack.reporting.encryptionKey: $MESOS_FRAMEWORK_ID\n\" >> $MESOS_SANDBOX/kibana-$ELASTIC_VERSION-linux-x86_64/config/kibana.yml; echo 'Installing X-Pack plugin...'; $MESOS_SANDBOX/kibana-$ELASTIC_VERSION-linux-x86_64/bin/kibana-plugin install file://$MESOS_SANDBOX/x-pack-$ELASTIC_VERSION.zip; fi; if [ \"$KIBANA_ELASTICSEARCH_TLS\" = true ]; then echo -e \"\nelasticsearch.ssl.certificateAuthorities: $MESOS_SANDBOX/.ssl/ca-bundle.crt\n\" >> $MESOS_SANDBOX/kibana-$ELASTIC_VERSION-linux-x86_64/config/kibana.yml; fi; env && $MESOS_SANDBOX/kibana-$ELASTIC_VERSION-linux-x86_64/bin/kibana",
+  "cmd": "echo -e \"elasticsearch.url: $ELASTICSEARCH_URL\nelasticsearch.username: $KIBANA_USER\nelasticsearch.password: $KIBANA_PASSWORD\nserver.host: 0.0.0.0\nserver.port: $PORT_KIBANA\nserver.basePath: /service/$FRAMEWORK_NAME\" > $MESOS_SANDBOX/kibana-$ELASTIC_VERSION-linux-x86_64/config/kibana.yml && if [ \"$XPACK_ENABLED\" = true ]; then echo -e \"\nxpack.security.encryptionKey: $MESOS_FRAMEWORK_ID\nxpack.reporting.encryptionKey: $MESOS_FRAMEWORK_ID\n\" >> $MESOS_SANDBOX/kibana-$ELASTIC_VERSION-linux-x86_64/config/kibana.yml && echo 'Installing X-Pack plugin...' && $MESOS_SANDBOX/kibana-$ELASTIC_VERSION-linux-x86_64/bin/kibana-plugin install file://$MESOS_SANDBOX/x-pack-$ELASTIC_VERSION.zip; fi && if [ \"$KIBANA_ELASTICSEARCH_TLS\" = true ]; then echo -e \"\nelasticsearch.ssl.certificateAuthorities: $MESOS_SANDBOX/.ssl/ca-bundle.crt\n\" >> $MESOS_SANDBOX/kibana-$ELASTIC_VERSION-linux-x86_64/config/kibana.yml; fi && env && $MESOS_SANDBOX/kibana-$ELASTIC_VERSION-linux-x86_64/bin/kibana",
   "labels": {
     "DCOS_SERVICE_NAME": "{{service.name}}",
     "DCOS_SERVICE_PORT_INDEX": "0",
@@ -12,6 +12,7 @@
   },
   "env": {
     "ELASTIC_VERSION": "5.6.5",
+    "ELASTIC_STATSD_VERSION": "5.6.5.0",
     "FRAMEWORK_NAME": "{{service.name}}",
     "FRAMEWORK_USER": "{{service.user}}",
     "XPACK_ENABLED": "{{kibana.xpack_enabled}}",
@@ -22,9 +23,9 @@
     "KIBANA_USER": "{{kibana.user}}",
     "KIBANA_PASSWORD": "{{kibana.password}}"
   },
-  "uris": [
-    "{{resource.assets.uris.kibana-tar-gz}}",
-    "{{resource.assets.uris.xpack-zip}}"
+  "fetch": [
+    { "uri": "{{resource.assets.uris.kibana-tar-gz}}", "cache": true },
+    { "uri": "{{resource.assets.uris.xpack-zip}}", "extract": false, "cache": true }
   ],
   "upgradeStrategy":{
     "minimumHealthCapacity": 0,
@@ -41,7 +42,12 @@
   "healthChecks": [
     {
       "protocol": "MESOS_HTTP",
+      {{^kibana.xpack_enabled}}
       "path": "/",
+      {{/kibana.xpack_enabled}}
+      {{#kibana.xpack_enabled}}
+      "path": "/login",
+      {{/kibana.xpack_enabled}}
       "gracePeriodSeconds": 900,
       "intervalSeconds": 30,
       "portIndex": 0,
--- 100/package.json
+++ 200/package.json
@@ -1,14 +1,14 @@
 {
   "packagingVersion": "4.0",
   "upgradesFrom": [
-    "2.1.1-5.6.5"
+    "2.2.0-5.6.5"
   ],
   "downgradesTo": [
-    "2.1.1-5.6.5"
+    "2.2.0-5.6.5"
   ],
   "minDcosReleaseVersion": "1.9",
   "name": "kibana",
-  "version": "2.2.0-5.6.5",
+  "version": "2.3.0-5.6.5",
   "maintainer": "support@mesosphere.io",
   "description": "Kibana 5, and optionally X-Pack",
   "selected": true,
@@ -19,7 +19,7 @@
     "kibana",
     "x-pack"
   ],
-  "preInstallNotes": "Default configuration requires 1 agent node with: 0.5 CPU | 2048 MB MEM",
+  "preInstallNotes": "This DC/OS service is currently a beta candidate undergoing testing as part of a formal beta test program. There may be bugs, incomplete features, incorrect documentation, or other discrepancies.\n\nDefault configuration requires 1 agent node with: 0.5 CPU | 2048 MB MEM\n\nContact Mesosphere before deploying this beta candidate service. Product support is available to approved participants in the beta test program.",
   "postInstallNotes": "The DC/OS Kibana service is being installed!\n\n\tDocumentation: https://docs.mesosphere.com/services/elastic/\n\tIssues: https://docs.mesosphere.com/support/",
   "postUninstallNotes": "The DC/OS Kibana service is being uninstalled.\n\nFor DC/OS versions from 1.10 no further action is required. For older DC/OS versions follow the instructions at https://docs.mesosphere.com/services/elastic/uninstall to remove any persistent state if required."
-}
+}```

Closing this PR because #1813 uses the correct SHA from sdk-040

authors: mesosphere-ci samvantran

repo: mesosphere/universe