Auto instrumentation of express app is not sending exception event in trace

What version of OpenTelemetry are you using?
"@opentelemetry/api": "1.8.0"
"@opentelemetry/auto-instrumentations-node": "0.44.0"
What version of Node are you using?
v20.12.2
What did you do?
Ran a simple express app which raises exception.
const express = require('express');
const app = express();

function ErrorGenerator(a, b) {
    if (b === 0) {
        throw new Error('Division by zero error');
    }
    return a / b;
}

app.get('/', (req, res) => {
    const result = ErrorGenerator(10, 0);
    console.log('Result:', result);
    res.send("Here is results of highest computed maths");
});

app.use((err, req, res, next) => {
    console.error('An error occurred:', err.message);
    res.status(400).send('Bad Request: ' + err.message);
    next(err);
  });

const port = 6002;
app.listen(port, () => {
    console.log(`Server is running on port ${port}`);
});

What did you expect to see?
On hitting the endpoint get a span with exception in event array. Somewhat similar to this:
{
  traceId: '7d57f374b49081a2c46aee1b9334d1c7',
  parentId: undefined,
  traceState: undefined,
  name: 'GET',
  id: 'dfdebec418911ea9',
  kind: 2,
  timestamp:<PHONE_NUMBER>562000,
  duration: 3011281.152,
  attributes: {
    'http.url': 'http://<IP_ADDRESS>/computeMetadata/v1/instance',
    'http.method': 'GET',
    'http.target': '/computeMetadata/v1/instance',
    'net.peer.name': '<IP_ADDRESS>',
    'http.host': '<IP_ADDRESS>:80',
    'http.error_name': 'Error',
    'http.error_message': 'socket hang up'
  },
  status: { code: 2, message: 'socket hang up' },
  events: [
    {
      name: 'exception',
      attributes: {
        'exception.type': 'ECONNRESET',
        'exception.message': 'socket hang up',
        'exception.stacktrace': 'Error: socket hang up\n' +
          '    at Socket.socketCloseListener (node:_http_client:473:25)\n' +
          '    at Socket.emit (node:events:530:35)\n' +
          '    at TCP.<anonymous> (node:net:337:12)\n' +
          '    at TCP.callbackTrampoline (node:internal/async_hooks:130:17)'
      },
      time: [<PHONE_NUMBER>, 573273845 ],
      droppedAttributesCount: 0
    }
  ],
  links: []
}

What did you see instead?
{
  traceId: 'f2a2854b4e599d5abb83960e4904fb79',
  parentId: undefined,
  traceState: undefined,
  name: 'GET /',
  id: '46e1fb4811ce2415',
  kind: 1,
  timestamp:<PHONE_NUMBER>279000,
  duration: 9807.383,
  attributes: {
    'http.url': 'http://localhost:6002/',
    'http.host': 'localhost:6002',
    'net.host.name': 'localhost',
    'http.method': 'GET',
    'http.scheme': 'http',
    'http.target': '/',
    'http.user_agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4.1 Safari/605.1.15',
    'http.flavor': '1.1',
    'net.transport': 'ip_tcp',
    'net.host.ip': '::1',
    'net.host.port': 6002,
    'net.peer.ip': '::1',
    'net.peer.port': 50140,
    'http.status_code': 400,
    'http.status_text': 'BAD REQUEST',
    'http.route': '/'
  },
  status: { code: 0 },
  events: [],
  links: []
}

I can confirm that I'm seeing the same issue.

I'm not sure how easy this is to fix. The current express instrumentation ends middleware spans immediately because there is no way to know when their async work is completed. We can't add events to ended spans. The only way to solve this would be to modify the callback passed into the middleware I believe, in addition to tracking throws both sync and async.


PR: Add Pre-Release

https://github.com/mupen64plus-ae/mupen64plus-ae/pull/1079
brach: dev

I keep auto builds of pre-releases on the pull request for the specific version.
https://github.com/skylersaleh/SkyEmu/pull/143
I don't want them in the main releases page as they aren't tested well enough for general users.


Support For Graceful Shutdown

Application should wait before all the goroutines are completed before shutting down application

I second that, but I would say the app should wait a short delay and not forever. Something like 5s-1m depending on the app. So it could be an app parameter

Agreed. 5 second is a respectable default - with an option to override it, if user so wishes.


BUG in SVN segment when there's a SVN changelist

I suppose its a matter of ignoring blank lines. Error below:

Error as txt:
Exception in thread Thread-3:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
    self.run()
  File "build/bdist.linux-x86_64/egg/powerline_shell/segments/svn.py", line 59, in run
    self.stats, self.revision = build_stats()
  File "build/bdist.linux-x86_64/egg/powerline_shell/segments/svn.py", line 47, in build_stats
    stats = parse_svn_stats(status)
  File "build/bdist.linux-x86_64/egg/powerline_shell/segments/svn.py", line 20, in parse_svn_stats
    if line[0] == "?":
IndexError: string index out of range


Add support for additional skeletons

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Optimize the time display format of historical messages

Within an hour, display the number of minutes ago
Within a day, display the number of hours ago
Within a week, display the number of days ago
More than a week, display the full time

I would like to work on it. Can you mention the related file to this issue ?

@TilteD24
This file:
frontend/components/sidebar/sidebar-item.tsx
You could add a util function in  frontend/lib/utils.ts, then replace the following code:
                    {!isActive && <span>{format(new Date(search.createdAt), 'MMM d, yyyy h:mm a')}</span>}


a question about Margin collapsing

Request type

[ ] Please close this issue, I accidentally submitted it without adding any details
[ ] New documentation
[x] Correction or update

Details

If margin-top is less than 0, the actual margin between the boxes is the total of the two margins.
In that case,the description is not correct.

Good point. What page did you find this issue on?

https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks/The_box_model
"Margin collapsing"
@chrisdavidmills


Fix package name in README.md for hud demo

Fix for README file that wasn't updated to reflect the new package changes

Thank you for spotting this!


fix(ci): 192 core spot runner

The cpp parts really churn. Buy time for better solution with compute

@charlielye your call - might be worth the better UX right now for cpp folk

hotfixing merge check + getting this in


prove payment retry from gui

edge case for when tx proof is generated but timeout before jwp is created. need to add a retry button. see address_book.rs in the gui module

0-conf jwp should elminate. get transfer by txid and unlock time should be sufficient validations, no need to wait more than on estimated block even if still in pool


Publish

Docs Build status updates of commit 6a45197:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/excel/custom-functions-json-autogeneration.md
:white_check_mark:Succeeded
View

docs/excel/custom-functions-json.md
:white_check_mark:Succeeded
View

docs/excel/custom-functions-localize.md
:white_check_mark:Succeeded
View

docs/excel/custom-functions-naming.md
:white_check_mark:Succeeded
View

docs/excel/custom-functions-overview.md
:white_check_mark:Succeeded
View

docs/excel/custom-functions-parameter-options.md
:white_check_mark:Succeeded
View

docs/excel/custom-functions-shared-overview.md
:white_check_mark:Succeeded
View

docs/excel/custom-functions-troubleshooting.md
:white_check_mark:Succeeded
View

docs/excel/custom-functions-volatile.md
:white_check_mark:Succeeded
View

docs/excel/custom-functions-web-reqs.md
:white_check_mark:Succeeded
View

docs/outlook/add-and-remove-attachments-to-an-item-in-a-compose-form.md
:white_check_mark:Succeeded
View

docs/toc.yml
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


Support placeholders in InfinispanRemoteAutoConfiguration

If a ISPN client properties is loaded it is loaded via standard java.util.Properties. Thus the application needs to hard-code for example initial server list. It would be useful if a Spring mechanism for loading properties that supports placeholders would be used. This would allow the developer to refer to env vars/system properties and thus be provided during deployment time. Typical use case are env vars provided by Kuberentes that refer to a running ISPN server service.

https://issues.jboss.org/browse/ISPN-7419
Since it is very easy to implement, I should have something ready soon.

Actually this can be done purely in Spring.
Spring supports injecting (please have a look here for more information). Then you need to take this property and manually create a InfinispanRemoteConfigurer as shows here.
Here's a copied example:
@Value("${spring.infinispan.server}")
private String infinispanAddress;

@Bean
public InfinispanRemoteConfigurer infinispanRemoteConfigurer() {
   return () -> new ConfigurationBuilder()
         .addServers(infinispanAddress)
         .build();
}

I know and I use it - but still it is kind of a code duplication. And parameter tuning means code recompilation (if I need to add a new one) instead of just a change in deployment.

Granted. In that case ISPN-7419 could be a solution for your problem or alternatively we could have another look at https://github.com/infinispan/infinispan-spring-boot/issues/8.
The only problem with https://github.com/infinispan/infinispan-spring-boot/issues/8 is that we have lots of those properties and this add some maintenance work on our side to keep them in sync.

@jpechane This should already be available in 9.0.0.CR1. We recently released 9.0.0.CR2. Could you please check if it works and if it solves your needs?


chore: adaptations for nightly-2024-08-08

Do we know the cause of the heartbeat bumps?
bors delegate+

Unfortunately not. I worked love to minimise these, but haven't had time yet. If anyone would like to look into this ...

bors merge


I LOVE you DUDU

Great math lib, highly recommanded

I LOVE you CXY

Why you have already updated the new version?


chore(v2): prepare v2.0.0-beta.15 release

chore(v2): prepare v2.0.0-beta.15 release

great idea to try to publish with bad network 😅


V4 login

A question I have: are we effectively hard coding university imagery for v4?  Like this image of students gathered together.  Seems the answer is yes for short term.
Adjusted App.js routing a bit in order to render a consistent NavBar across all pages as now the NavBar is identical on all pages.
The Login page consistently on multiple screens I tested leaves a tiny bit of space for the user to scroll up and down, which leaves a bit more space under the footer.  However, we could easily change this so that the user has no where to scroll up or down and bring all sections a bit closer together vertically.
Before

After

Looks good, yes we're just hardcoding the uofa branding for v4. Let's just get rid of that extra scroll-down like you mentioned before merging.

Ok, updated that.  See if this has the effect you have in mind locally.  There is not a ton of space underneath the footer text now, which maybe is the desired output.  We can play with this as needed.


windows_task resource for chef-client (v16) should use double quote (")

Description
windows_task resource used to configure chef-client has the wrong command argument.  it's supposed to use double quotes ("), e.g.
/c "C:/opscode/chef/bin/chef-client -L C:/chef/log/client.log -c C:/chef/client.rb"
but it instead uses single quote (')
/c 'C:/opscode/chef/bin/chef-client -L C:/chef/log/client.log -c C:/chef/client.rb'
Currently the resulting full command doesn't run
c:\Windows\system32\cmd.exe /c 'C:/opscode/chef/bin/chef-client -L C:/chef/log/client.log -c C:/chef/client.rb'
Chef Version
chef-client v16.0.275
Platform Version
windows 2016 datacenter
Replication Case
Step1: Deleted 'chef-client' entry in task scheduler
Step2: I changed C:/opscode/chef/embedded/lib/ruby/gems/2.7.0/gems/chef-16.0.275-universal-mingw32/lib/chef/resource/chef_client_scheduled_task.rb
line 163:
from
"#{cmd_path} /c '#{client_cmd}'"
to
"#{cmd_path} /c "#{client_cmd}""
Step3: Rerun chef-client
Step 4: Watch the chef-client log file is updated according to its interval
Client Output
# Logfile created on 2020-07-20 06:58:43 +0000 by logger.rb/v1.4.2
[2020-07-20T06:58:43+00:00] DEBUG: Reading products and relationships...
[2020-07-20T06:58:43+00:00] DEBUG: Successfully read products and relationships
[2020-07-20T06:58:43+00:00] DEBUG: Searching for the following licenses: ["infra-client", "inspec"]
[2020-07-20T06:58:43+00:00] DEBUG: Found license chef_infra_client at C:/Users/Administrator/.chef/accepted_licenses/chef_infra_client
[2020-07-20T06:58:43+00:00] DEBUG: Found license inspec at C:/Users/Administrator/.chef/accepted_licenses/inspec
[2020-07-20T06:58:43+00:00] DEBUG: Missing licenses remaining: []
[2020-07-20T06:58:43+00:00] DEBUG: All licenses present
[2020-07-20T06:58:43+00:00] DEBUG: Running Ohai with the following configuration: {:logger=>Chef::Log}
[2020-07-20T06:58:43+00:00] INFO: *** Chef Infra Client 16.0.275 ***
[2020-07-20T06:58:43+00:00] INFO: Platform: x64-mingw32
[2020-07-20T06:58:43+00:00] INFO: Chef-client pid: 2212
[2020-07-20T06:58:43+00:00] DEBUG: Chef-client request_id: dee15a2b-6e96-41d2-83c1-997fc76677b9
[2020-07-20T06:58:43+00:00] DEBUG: Running Ohai with the following configuration: {:logger=>Chef::Log}
[2020-07-20T06:58:43+00:00] DEBUG: The plugin path C:\chef\ohai\plugins does not exist. Skipping...
[2020-07-20T06:58:49+00:00] DEBUG: Unable to access Win32_EncryptableVolume. Skipping encryptable details
[2020-07-20T06:58:50+00:00] DEBUG: Extracting run list from JSON attributes provided on command line
[2020-07-20T06:58:50+00:00] DEBUG: Applying attributes from json file
[2020-07-20T06:58:50+00:00] DEBUG: Platform is windows version 10.0.14393
[2020-07-20T06:58:50+00:00] INFO: Run List is [role[base], recipe[choco::install]]
[2020-07-20T06:58:50+00:00] INFO: Run List expands to [chef-client, choco::install]
[2020-07-20T06:58:50+00:00] INFO: Starting Chef Infra Client Run for comp-win-KsAx
[2020-07-20T06:58:50+00:00] INFO: Running start handlers
[2020-07-20T06:58:50+00:00] INFO: Start handlers complete.
[2020-07-20T06:58:50+00:00] INFO: Loading cookbooks<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>[2020-07-20T06:58:51+00:00] DEBUG: Cookbooks to compile: [:cron, :logrotate, :"chef-client", :choco]
[2020-07-20T06:58:51+00:00] DEBUG: Using chef-client bin from node attributes
[2020-07-20T06:58:51+00:00] INFO: Using chef-client binary at C:/opscode/chef/bin/chef-client
[2020-07-20T06:58:51+00:00] DEBUG: Converging node comp-win-KsAx
[2020-07-20T06:58:51+00:00] INFO: Processing chef_client_scheduled_task[Chef Client] action add (chef-client::task line 31)
[2020-07-20T06:58:51+00:00] INFO: Processing windows_task[chef-client] action create (C:/opscode/chef/embedded/lib/ruby/gems/2.7.0/gems/chef-16.0.275-universal-mingw32/lib/chef/resource/chef_client_scheduled_task.rb line 132)
[2020-07-20T06:58:51+00:00] INFO: Processing windows_task[chef-client] action enable (C:/opscode/chef/embedded/lib/ruby/gems/2.7.0/gems/chef-16.0.275-universal-mingw32/lib/chef/resource/chef_client_scheduled_task.rb line 132)
[2020-07-20T06:58:51+00:00] INFO: Processing windows_service[chef-client] action configure_startup (chef-client::task line 46)
[2020-07-20T06:58:51+00:00] DEBUG: Skipping windows_service[chef-client] due to only_if ruby block
[2020-07-20T06:58:51+00:00] INFO: Processing windows_service[chef-client] action stop (chef-client::task line 46)

Stacktrace

chef-client cookbook (v11.5.0) has similar logic in resources/scheduled_task.rb
`  def full_command
# Fetch path of cmd.exe through environment variable comspec
cmd_path = ENV['COMSPEC']
if Gem::Requirement.new('< 13.7.0').satisfied_by?(Gem::Version.new(Chef::VERSION)) || Gem::Requirement.new('>= 14.4.0').satisfied_by?(Gem::Version.new(Chef::VERSION))
  "#{cmd_path} /c \"#{client_cmd}\""
else
  "#{cmd_path} /c \'#{client_cmd}\'"
end

end`


[fix][broker] Fix bk config file path in pulsarStandalone

Motivation
configFile in PulsarStandalone is set for  broker config,  we shouldn't  set it for bookkeeper config.  So here we need add a new bkConfigFile for bookkeeper config
Modifications
Added a new bkConfigFile for bookkeeper config
Verifying this change

[x] Make sure that the change passes the CI checks.

Documentation

[ ] doc
[ ] doc-required
[x] doc-not-needed
[ ] doc-complete

Matching PR in forked repository
PR in forked repository: https://github.com/AnonHxy/pulsar/pull/25

What's the case you need a different config file for the bookie ?

I wanted to start a standalone cluster with the online bookkeeper config to verify some test,  but we I run the following script, it started fail:
bin/pulsar standalone  -c /xxx/xxx/bookkeeper.online.conf

The cause is that it will try to parse the /xxx/xxx/bookkeeper.online.conf as a broker config.  So I think thers is no compatible issue, because the standalone will start fail if we try to use this way  @nicoloboschi

It not very clear about this change,  so I colse it  now


declare  interface   H3EventContext

Describe the feature
xxx.d.ts
declare module 'h3' {
interface H3EventContext {
auth: AuthSession
}
}
Previously it was valid, why did this statement become invalid after the update
Additional information

[ ] Would you be willing to help implement this feature?
[ ] Could this feature be implemented as a module?

Final checks

[X] Read the contribution guide.
[X] Check existing discussions and issues.

这是一封自动回复邮件。已经收到您的来信，我会尽快回复。


Entering/leaving machine deletes xp levels

I am using the obscurity pack, so it may be a conflict, but when entering or leaving a compact machine, the player's xp levels are removed or set back to 0.

It happens to me too using a custom modpack. I guess it's CM itself the cause.

have you tried just changing dimensions like going to the nether or end? See if your xp changes when that happens.

This is a bug in vanilla caused by not sending a packet to resync the xp level.

@Badcholo for me it happens only when entering the CM dimension. Nether, Aroma dimensional world, Aether, Deep Dark, Last Millennium etc works fine.
Since I use a custom modpack it's not a bid deal this issue, there are items from other mods that store you xp into tanks or items.

Currently working on a 1.10.2 version, the 1.7.10 version is not being maintained anymore, sorry.
Closing all issues not relevant for the new version.


Make the site responsive

i am new to open source community.. can i work on this and it would take me a few days like 3-4 to resolve this.

@surajat17 Sure . Go ahead 👍🏻 . Let me know if you need any type of help

Can I work on this and open the PR during Hacktoberfest? :)

@Vansh1067 i am working on it mate:)

@RocktimSaikia Please assign the issue to the respective person when finalised, so that others can get to know that issue is already taken.

@sushabhardy  Yes. I totally forgot about that. Anyway it was recently fixed in #261 by @anushri20 with some of my updated changes on it.


Responsive Design

Adjust SAGE to have responsive design.

Key areas:

Object Show
Object Index
Concept Show

Checklist:

Partials for objects and concepts.
Full notices via layouts.
Appropriate appearance in full/half modes.


Wiki - YARN - Run tasks in docker containers

Hadoop 2.6+ allows YARN to run the tasks inside Docker containers.. Explain how does it work if YARN itself is ran inside a docker container.
Obviously, this issue depends on #7 .

Do you want an overview explanation about Docker Container Executor (DCE)  or an example of a yarn launched docker containers

Hadoop 2.6 offers a new feature that allows to launch a MapReduce application in a Docker container: https://hadoop.apache.org/docs/r2.6.0/hadoop-yarn/hadoop-yarn-site/DockerContainerExecutor.html
It is said in the documentation, that the "The DockerContainerExecutor requires Docker daemon to be running on the NodeManagers" which would be easy to do if we had a bare-metal installation of Hadoop. However, we'll be running the NodeManager itself in a Docker container. Therefore there will be no Docker daemon inside the NodeManager; the Docker daemon will be running in the host of the NodeManager's container. So our setup is different than the Hadoop doc because we're running YARN itself in Docker containers.
Like mentioned in the description, this issue depends on issue #7 which has been solved by @codingtony . Therefore, if you were to work on this issue, you should probably start your work based on his branch to add the DCE on top of it. @codingtony, could you advise @momozaza on best procedure to do that?
My idea on how to solve this would be:

Add docker client inside the Hadoop's Dockerfile. But do not start the docker daemon.
When launching the YARN ResourceManager, pass an environment variable to the Docker run command that tells where the docker host is located (will be different for every team and every users of this feature).

This is an advanced feature, especially since you have not learned MapReduce/YARN in class. @mikefaille may be able to help on the Docker / networking side  and @codingtony may help on YARN concepts. Even if the feature is not completed, it may still provide some help for the future.


Creating context menu template

I've tried to create a context menu template to no avail. I'm going to use this specific template in approximately 4-5 other components, but the documentation was extremely vague and I couldn't figure it out.
I want to create a specific template that will take certain data (e.g a boolean and a string) along with the item for usage within the template, but I can't find any references to injected data in the section speaking about context menus in different components.
Any help is appreciated.

@george-sarji - not sure if you made any progress on your issue, a similar solved issue can be found here: https://github.com/isaacplmann/ngx-contextmenu/issues/156


fix: hardwareDetails navigation

Close #517
How to test
from HardwareDetails page try navigate to BuildDetails and TestsDetails page

The AccordionContent isn't fullsize

@Francisco2002 this was not introduced by this PR, created an ticket and assigned to @MarceloRobert  for that


Exercise 7

Reviewed: https://github.com/Systems-Development-and-Frameworks/TheCodeNinjas/pull/10#pullrequestreview-577296066

Hi team!
Thanks for this PR!
The "pre-merge" was perfect, the "Files Changed" tab is very clean ⭐
The API connection works, the tests look good. ⭐ ⭐
Frontend tests are passing, responses are mocked. ⭐
Also:
⭐ ⭐ For a login feature in your   webapp including a Vue component and its software tests.
⭐ ⭐ For   a menu component which shows a login or logout button and its software tests.
⭐ For an upvote button that   behaves according to the authentication state of your user
⭐ For a   delete and edit button that is only visible to the author of the post.
Sadly, I see issues with the last two.
First, the Lighthouse reporting clearly shows that your PWA is not setup. Your nuxt.config reflects this. (See the "Installable" Section) :x:

Lastly, your review for TheCodeNinjas is too scarce to give you a point. See the requirements in the instructions.  :x:
That makes 11/13 :star:


Create zh_CN.lang

Ref. Iguana Tinker Tweaks.

ping

Oh right, thanks for the ping

Thanks for reply as well :)

On Oct 15, 2016, at 09:52, boni<EMAIL_ADDRESS>wrote:
Oh right, thanks for the ping
―
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.


add floating point gauge

The current spec only contains an integer based gauge. Many metrics of interest are sometimes expressed as floating point numbers; load average being an example. This proposal extends the metric interface to include a floating point gauge.
I have not extended the statsd interface because I'm unfamiliar with with its protocol.

Thanks for the PR. If we change package metrics to support a float64 Gauge type, I think it would replace the existing Gauge, rather than complement it. That would have knock-on consequences in (at least) the expvar Histogram that would need to be worked through.
I'll probably attack this in the next week, if you can stand to wait. If you want to amend your PR to change the existing Gauge type to work with float64s, please feel free.

That was straightforward. Please see #18


Patch service tag comparison

Related to: Updater has version comparison problem
Performing comparison with packaging.version.parse against full tag name rather than just build#.

We want to preserver the behavior where versions that don't match on FRAMEWORK_VERSION.SYSTEM_VERSION (the first two numbers) are rejected.

Looks good to me.
If you wanted to add a test you could mock out _get_proprietary_registry_tags or _get_dockerhub_tags in get_latest_tag_for_service so you could feed it some known good and bad tag lists to confirm how it handles it.


Migrate from Gitbook to Wiki

Why, did you encounter issues with Gitbook? And what wiki do you have in mind?

The same. It's easier to contribute.

+1

We have issues with gitbook - it uses some weird DNS configuration and basically only first html render works for us. When navigated in SPA the page doesnt show up.

By Wiki did you mean GitHub's wiki ? If so it is not possible to create a PR on the wiki. Unless if you meant to have the docs in the main repository, eg in a docs folder ?

@PowerKiKi this issue is not relevant anymore as we refactor the docs and move it to the README file in v4. Thanks anyway.


Not able to combine bold and italic like the front page example: what am I missing?

I have a react component of the following nature:
export const RichTextArea = (props: RichTextAreaProps) => {
  const [value, setValue] = useState<string>(props.value || '');

  const handleChange = (updatedValue: string) => {
    setValue(updatedValue);
    props.onChange?.(updatedValue);
  };

  return (
    <MDXEditor
      markdown={value}
      onChange={handleChange}
    />
  );
};

However, when I utilize this plugin, I cannot combine both bold and italic using keyboard shortcuts or any other means.  The sequence seems to go like this:

Ctrl-B: text turns bold
Ctrl-I: text doesn't change
Ctrl-B: bold is removed, but now the text is italic (appears to have been stored behind the scenes)
Ctrl-I: text is unitalicized

Inspecting the element when bolded gives me something like the following:
es

If I do the reverse, I get other odd behavior:
Ctrl-I: italicized
es

Then hit Ctrl-B, the italics disappear and the text turns bold, with the tag now being:
es

But neither style shows up in my console to inspect, either, so I'm not sure what the deal is here?  Thoughts?

No, no thoughts. Reproduce it in a sandbox and add the link here, I will take a look, and re-open the issue if necessary.

Certainly - behavior is directly replicated here

@petyosi No problem!
Reproduced here.

Go to the "HI there"
select the text
hit Ctrl-B
hit Ctrl-I
hit Ctrl-B again

and you'll see the same issue.  Clearly this isn't happening on the front page of the MDXEditor, so what would the difference be here?

@petyosi I think I've got something here...the classes for the style formatting are all present in the css file attached to your front page:
._bold_16kwi_10 {
    font-weight: 700
}

._italic_16kwi_14 {
    font-style: italic
}

._underline_16kwi_18 {
    text-decoration: underline
}

._strikethrough_16kwi_34 {
    text-decoration: line-through
}

._underlineStrikethrough_16kwi_38 {
    text-decoration: underline line-through
}

._subscript_16kwi_42 {
    font-size: .8em;
    vertical-align: sub!important
}

._superscript_16kwi_47 {
    font-size: .8em;
    vertical-align: super
}

I don't have these styles present in the css in the sandbox example, nor my own code, so this appears to be something created or added into a tailwind css file.  Since I don't receive these styles by default when installing the editor, is there something I / other users can be doing to pull this in?

Without trying to scold you:

There are several working examples as repositories for all modern React stacks, all of them mentioned in the docs.
The getting started page refers to this line in more than one example:

import<EMAIL_ADDRESS>
It's great that you're giving the editor a try, but it's going to be very hard to trial and error your way through the integration without reading the docs. I have no means to support you through chatting in Github issues.

Hi!  Thanks, no worries and I appreciate the aid!  Pretty easy for that dependency to slip by, but glad I figured it out - that's a pretty key piece of troubleshooting info!  =)
Speaking of trialing and erroring my way through the docs, hope there's some plans to  beef up the docs for the APIcore aspect - would help a lot when figuring out how to build our own plugins beyond a trivial one!
Thanks again for your work in making this library, really appreciating it greatly!

Also submitted https://github.com/mdx-editor/editor/pull/300 to add this note to the docs!  Have a great day!


Links inserted into bio aren't parsed correctly.

Describe the bug
Links inserted into bio aren't parsed correctly check the screenshot.
To Reproduce
Steps to reproduce the behavior:

Go to https://dogehouse.tv/me
Click on Edit Profile
Enter two or three links in separate lines
Submit
Check your profile links now, all the links are combined into one link

Expected behavior
Links should be parsed separately and each link should be directed to the correct URL
Screenshots

What device are you on?
Google Chrome on macOS

cc: @nadirabbas

yeah currently, the tokens are created by splitting by space, not by a line break

Just wrote a parser to fix this

@justincremer I suggested some changes on your commit.

@justincremer this has been fixed #839


Add timestamp to mentee applications

Description:
A timestamp of mentee application submission time needs to saved in the database.
Tasks:
Add a date-time column to track the application submission time for mentee applications.
Acceptance Criteria:

[ ] Update database schema to include timestamp field
[ ] Modify API to save submission timestamp with each application
[ ] Update application retrieval endpoints to include timestamp
[ ] Ensure timestamp is in a consistent format
[ ] Add migration script for existing applications (if applicable)

Additional Information:
Consider time zone handling for accurate representation across different regions.
Related Dependencies or References:
Add related dependencies and references relating to the implementation.

We can use the created_at field for this. @Madhawa97


[Feature suggestion] custom js on pages

Hi,
I'm suggesting this because have times that you need to put custom js on Gogs. I'm as example, I need to put piwik js to track visitors on Gogs pages and I can't inject this js with apache because isn't possible to use proxy and sed same time.
I think that is good feature, but, with big attention alert that bad js may causes problems on Gogs instance.
What you think?

For now you can override the <head></head> in a still experimental feature, custom templates: https://github.com/gogits/gogs/issues/2098#issuecomment-195785397 Just add you <script></script> there.
For more advantage customization, you may want to follow: https://github.com/gogits/gogs/issues/2438


SOLID LOGIN: Obtain the app version

Description
As per TODO note, implement the obtaining of the version in solid login.

The app version should be obtained from pubspec.yaml inb keyPod project? @gjwgit

Made pull request https://github.com/anusii/keypod/pull/40 and https://github.com/anusii/solid/pull/28

The description suggested that the version should be obtained from within solid login. That is, inside the solid package.
At every step the aim is to make it easier for the app developer, not harder.
With your approach every app  developer now needs to obtain the version themselves. It would be better if it is obtained within the solid package (so we do the hard work once) and not in the app (where every app developer has to do the hard work every time).


Updated article with Azure CLI and PowerShell examples

Updated article with Azure CLI and PowerShell examples.

@StefanIvemo : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@StefanIvemo : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#sign-off


SVG fix for icons.

Issue
Fixes MERATIVE-931
Description
The numerous values assigned to the path, specifically of the outer circle is causing some "bumpy" rendering issues
Test URLs

Before (Changes from main): https://www.merative.com
After (Changes from this PR): https://solution-list-logo-issue-svg--merative2--nimithshetty17.hlx.page/drafts/nimith/svg-code-test

Testing Instruction

If applicable, please describe the tests that you ran to verify your changes. Provide instructions and link to the hlx deploy preview so that QA and the design team can provide proper testing.

These are looking good for the solution list icons. I'm still seeing the fuzzy edges on the mega menu logos.

@keith-kaplan we can have this PR merged so that we can atleast fix the icons for the solution list block across the website.


Use job summaries instead of reporting actions through the API?

It's been reported multiple times that the actions are being shown under the wrong workflow in GitHub, but that it's an issue with the API that this action cant fix. #401, #280, #97, #93
As a potential workaround for the issue, would it be possible to report Job Summaries, either as an option or a replacement for reporting the status?
https://github.blog/2022-05-09-supercharging-github-actions-with-job-summaries/
It's mentioned as a workaround in this community discussion.
https://github.community/t/github-actions-status-checks-created-on-incorrect-check-suite-id/16685

Hey there, job summaries are not really a replacement for the Checks API as they don't provide inline annotations or can be used for branch protections.
I'm not sure if there's any benefit in having job summaries for lint results. But maybe I'm missing something?

I don't think it specifically has a benefit other than moving away from using the Checks API. It's been buggy for a couple years at this point and doesn't seem like it's going to be fixed any time soon
Workflow commands could be another option for adding annotations to lines of code. The only difference I see with this one is the annotations would be under show workflow that called this action instead of a separate check for each lint tool.


[Android][Burger Menu] Pressed state remains on burger menu after selecting a sample

Current behavior

Expected behavior

How to reproduce it (as minimally and precisely as possible)

Launch app
Open burger menu
Select a sample (ex. ComboBox)
Notice that pressed state remains on burger menu even after menu is closed

Environment

Nuget Package:
2.2.0-feature.styles-compat.201
Package Version(s):
Affected platform(s):

[ ] iOS
[x] Android
[ ] WebAssembly
[ ] UWP

Anything else we need to know?

If the burger menu is opened and then closed again the issue is not reproduced

Can not repro on latest with emulator @StewartPolsky can you confirm a repro, since there was some navview changes last week

@NicolasChampagne I was able to reproduce the issue, tested on a Samsung S10e on Android 10


Show locations on location index with image thumbnails, alphabetically

@shacker are we talking about the location index page here?
e.g. the location index page needs to list all location pages alphabetically and with the thumbnail image of that location?

Yes, sorry - was referring only to the Locations index here.

No worries. I've amended the title to make it a little clearer.
I'll work on the design bit of it today, and try and get it all in a PR for you to review when your back online PST time.


fix zig-zag decoding

To make bitwise operations platform independent the
docs
recommend coercing to signed 32 bit integers.
Fixes #7

Screenshot with this and #52 in a web browser 🎉

Still appears to work fine with this and [vector_map_tiles](https://github.com/greensopinion/flutter-vector-map-tiles) (mac application tested)


Can't use this program with PUBG

I wanna change PUBG's size in window mode. I choose the PUBG application but still can't change the size of the game window.

probably because anti cheat or because the game doesn't allow it to change?


No way to split into multiple files

I've tried multiple Ruby ways of including other files into the Barkfile, all to no avail. It seems there's no way to split the monitors into multiple files for easier management.

You can split the file in the following way.

file1.rb

monitor "Check load avg", :type=>"metric alert" do
  query "avg(last_5m):avg:ddstat.load_avg.1m{host:i-XXXXXXXX} > 1"
  message "<EMAIL_ADDRESS>  options do
    notify_no_data true
    no_data_timeframe 2
    notify_audit true
    silenced({})
  end
end

file2.rb

monitor "Check load avg2", :type=>"metric alert" do
  query "avg(last_1m):avg:ddstat.load_avg.1m{host:i-XXXXXXXX} > 1"
  message "<EMAIL_ADDRESS>  options do
    notify_no_data true
    no_data_timeframe 2
    notify_audit true
    silenced({})
  end
end

file3.rb

require 'file1'
require 'file2'

Yup, after a little bit of trial and error, your suggestion got me on the right track. As it turns out, require_relative doesn't seem to work, spitting out:
Apply `datadog/Barkfile` to Datadog monitors (dry-run)
[ERROR] undefined method `monitor' for main:Object

Switched that to a simple require and all's good. 👍


nixos/nginx: make sslCertificate and sslCertificateKey nullable

This doesn't change any behavior, but extraordinarily simplifies virtualHost override via options.services.nginx.virtualHosts.apply.

One drawback is a confusing error message when the user enables SSL but doesn't set the certificate paths. Most users wouldn't understand what's wrong here:
error: cannot coerce null to a string, at /home/uli/nixpkgs/nixos/modules/services/web-servers/nginx/default.nix:217:35

Before this PR, the message was much clearer:
error: The option `services.nginx.virtualHosts.0.my.test.sslCertificate' is used but not defined.

That comes at a price of not being able to refer to these options in apply function. It would show the same error message, but even if I do builtins.tryEval (lib.hasAttr "sslCertificate" vhost) it would show the error anyway.

Can't you use !(vhost ? sslCertificate) instead of vhost.sslCertificate == null?

@dotlambda I don't think that would work:
nix-repl> (a ? "hi")
error: undefined variable 'a' at (string):1:2

Huh, that worked. Thank you a lot!

Hm, actually it did not:
error: The option `services.nginx.virtualHosts.aaaaaDefault.sslCertificate' is used but not defined.
(use '--show-trace' to show detailed location information)

I just changed (optionalAttrs (vhost.sslCertificate == null)) above to (optionalAttrs !(vhost ? sslCertificate)). And tryEval also doesn't work, this seems to evaluate weirdly.

Any progress on this ?

Are there any updates on this pull request, please?


Xcode 15 showing error 'No such module 'Promises'

I upgraded to Xcode 15,  I'm getting this error No such module 'Promises' inside BroadcastScreenCapturer.swift file.
iOS/macOS Version
Xcode 15.0

Hey, I stripped out Promises lib for the upcoming v2 release. Will close this one.


Formal equiv diff opt_opt_share_large_pmux_part.v

Test yosys/tests/opt/opt_share_large_pmux_part.v
Comment the case 2 alternative and the test pass.

Fixed


Fix ngStrictDi support

In some scenarios, the $injector would be asked to annotate without
providing it with the current strictDi value, making resolvables not
complain about missing annotations.
This was previously addressed in this PR: https://github.com/angular-ui/ui-router/pull/2602
Yet, it is not working, as can be seen in this plunker, that contains a resolvable without annotations and yet no error is thrown: http://plnkr.co/edit/dd6ptmrUtzPnKLmAJkCY?p=preview

Thanks a lot!


added yearling

The Pull Request resolves Issue #[51]
Description:
A brief description about the addition or edits made.
Notes: Delete all the text including this!

The #[Issue-Number] should be replaced with the specific Issue being referenced.

Hey @asterisk30
Could you please update the file by removing , after second definition ?

Hey
The valid JSON format is

{
    "word": "yearling",
    "definitions": [
        " being a year old",
        "of a year's duration or standing"
     ],
    "parts-of-speech": "Adjective"
}

The last definition in the array must not have a comma after it. Update your file.
Thanks for contributing!


example_ToButtonWithIconAndIconHorizontal, 2 3 are raising DNU

These three examples are raising DNU as beRightToLeft

fixed,
the 2 and 3 versions are removed


Disposing a client which did not connect at least once causes a NullRef.

This is most likely an effect on calling methods on fields which have not yet been initialised.

#130 fixes this.


Fix POST queries to honour the abort signal

closes #3710
Checklist

[x] Manual verification
[ ] Unit test coverage
[ ] E2E test coverage
[x] Needs manual QA?

Summary
Issue addressed:
The queries in dashboard are not being cancelled when changing the filters and other settings. This is apparent while using druid or a large project.
Details:
We actually call cancel queries. But the orval generated code is not passing on the abort signal to our client. So cancellations are not honoured for these. The root cause is that these queries are POST requests overridden to be queries instead of mutations. This seems to have an edge case in orval of not adding signal properly.
Steps to Verify

It is not guaranteed to be stable with newer versions. I have fixed the version of orval for now.
Ideally there should be a fix from orval. Created a discussion for now: https://github.com/anymaniax/orval/discussions/1151

In trying to figure out if query cancellation is working, I found myself in this state after navigating quickly away from a loading dashboard, then returning to it:


refactor: clean up ordinals branching

Try out this version of the Hiro Wallet - download extension builds.

Refactors code removing unnecessary comments, cleaning up types, and simplifying branching for different ordinal types.
Fixes missing key attribute.

Can this be merged so I can rebase on it for this PR? https://github.com/hirosystems/stacks-wallet-web/pull/3227


Work around unreliable clipboard on Linux.

As reported in multiple issues, the Linux clipboard isn't very reliable. Based on my testing, it only starts working properly after set_text() is called, so I figured the easiest option was to ensure that that gets called without actually changing the text.
Downside is that it'll turn any rich text into plaintext, but that's why I modified get_text() rather than making an __init__() function. That way, we only overwrite the clipboard if the app actually needs it.
Closes #1298 and #1464.

I spent the time to track down the C++ code that makes it start working, to see if there was a better way. And there isn't really. We'd have to duplicate most of the X11_SetClipboardText function (everything except the one X11_XChangeProperty() call), which is longer than what I did here, and also less cross-platform compatible.
I also tried updating SDL, but SDL_x11clipboard.c has barely been touched in years, so of course it didn't make any difference.


Fix OpenMetrics parser to sort uppercase labels correctly.

This PR fixes OpenMetrics parser to sort labels starting with uppercase characters correctly. Since this parser is also used by promtool tsdb create-blocks-from openmetrics command, it fixes TSDB blocks generated by promtool backfilling.

Thanks!


feat: Run process/container as "kuiper" user

Description of Issue (per commit msg)
Currently the kuiper containers run as the root user which is a potential security risk in the event the service is compromised by an attacker. This commit updates all docker files to create a non-password carrying "kuiper" user that runs the container.
Description of Fix
Manipulated the dockerfiles to create a kuiper user, set appropriate ownership based on $KUIPER_HOME, and then switch to kuiper user (instead of root) for safe container execution.
How to Test
First, follow the steps below to clone the specific branch from my repository, and spin up a kuiper alpine based container. The steps below will drop you into the running container shell.
$ git clone --single-branch --branch run-container-as-kuiper-user https://github.com/beaufrusetta/kuiper.git kuiper-pr-test && cd kuiper-pr-test
$ make docker
$ docker run -it --rm $(docker images --filter=reference='emqx/kuiper:1.1.1*alpine' --format "{{.Repository}}:{{.Tag}}") /bin/sh

Run the whoami command at the terminal prompt to see the default user "kuiper" is executing the container and run ls -lah $KUIPER_HOME to see the directories owned by the new "kuiper" user.
The following dockerfiles were manipulated:

deploy/docker/Dockerfile
deploy/docker/Dockerfile-alpine
deploy/docker/Dockerfile-kubernetes-tool
deploy/docker/Dockerfile-slim

Hi, @beaufrusetta Thanks for your contribution
The compiled alpine image fails to start, and the error Failed to delete original file: /kuiper/etc/kuiper.yaml due to error remove /kuiper/etc/kuiper.yaml: permission denied... The conf util is going to exit. , execute ls -al $KUIPER_HOME to find that the owner of the file is still the root user, please fix it
/kuiper $ ls -al $KUIPER_HOME
total 36
drwxr-xr-x    1 kuiper   kuiper        4096 Jan 15 02:05 .
drwxr-xr-x    1 root     root          4096 Jan 15 02:39 ..
drwxr-xr-x    1 kuiper   kuiper        4096 Jan 15 02:05 bin
drwxr-xr-x    2 root     root          4096 Jan 15 02:04 data
drwxr-xr-x    6 root     root          4096 Jan 15 02:39 etc
drwxr-xr-x    2 root     root          4096 Jan 15 02:04 log
drwxr-xr-x    5 root     root          4096 Jan 15 02:39 plugins

In addition, I think the sudo command should be added to the mirror, and the kuiper user should be given the permission to execute sudo without password. What do you think?

Hi, @beaufrusetta Thanks for your contribution
The compiled alpine image fails to start, and the error Failed to delete original file: /kuiper/etc/kuiper.yaml due to error remove /kuiper/etc/kuiper.yaml: permission denied... The conf util is going to exit. , execute ls -al $KUIPER_HOME to find that the owner of the file is still the root user, please fix it
/kuiper $ ls -al $KUIPER_HOME
total 36
drwxr-xr-x    1 kuiper   kuiper        4096 Jan 15 02:05 .
drwxr-xr-x    1 root     root          4096 Jan 15 02:39 ..
drwxr-xr-x    1 kuiper   kuiper        4096 Jan 15 02:05 bin
drwxr-xr-x    2 root     root          4096 Jan 15 02:04 data
drwxr-xr-x    6 root     root          4096 Jan 15 02:39 etc
drwxr-xr-x    2 root     root          4096 Jan 15 02:04 log
drwxr-xr-x    5 root     root          4096 Jan 15 02:39 plugins

In addition, I think the sudo command should be added to the mirror, and the kuiper user should be given the permission to execute sudo without password. What do you think?

Hi, @beaufrusetta Thanks for your contribution
The compiled alpine image fails to start, and the error Failed to delete original file: /kuiper/etc/kuiper.yaml due to error remove /kuiper/etc/kuiper.yaml: permission denied... The conf util is going to exit. , execute ls -al $KUIPER_HOME to find that the owner of the file is still the root user, please fix it
/kuiper $ ls -al $KUIPER_HOME
total 36
drwxr-xr-x    1 kuiper   kuiper        4096 Jan 15 02:05 .
drwxr-xr-x    1 root     root          4096 Jan 15 02:39 ..
drwxr-xr-x    1 kuiper   kuiper        4096 Jan 15 02:05 bin
drwxr-xr-x    2 root     root          4096 Jan 15 02:04 data
drwxr-xr-x    6 root     root          4096 Jan 15 02:39 etc
drwxr-xr-x    2 root     root          4096 Jan 15 02:04 log
drwxr-xr-x    5 root     root          4096 Jan 15 02:39 plugins

In addition, I think the sudo command should be added to the mirror, and the kuiper user should be given the permission to execute sudo without password. What do you think?

Hi @zhanghongtong - I incorrectly listed the steps in "How to Test" and have revised them. Please run the steps again and please let me know if you're still experiencing issues.
Also - I would not advise adding "sudo" to the images and giving the "kuiper" user password-less access to execute that command - kind of defeats the purpose of locking down the image to avoid privilege escalation. 😄

Hi, @beaufrusetta Thanks for your contribution
The compiled alpine image fails to start, and the error Failed to delete original file: /kuiper/etc/kuiper.yaml due to error remove /kuiper/etc/kuiper.yaml: permission denied... The conf util is going to exit. , execute ls -al $KUIPER_HOME to find that the owner of the file is still the root user, please fix it
/kuiper $ ls -al $KUIPER_HOME
total 36
drwxr-xr-x    1 kuiper   kuiper        4096 Jan 15 02:05 .
drwxr-xr-x    1 root     root          4096 Jan 15 02:39 ..
drwxr-xr-x    1 kuiper   kuiper        4096 Jan 15 02:05 bin
drwxr-xr-x    2 root     root          4096 Jan 15 02:04 data
drwxr-xr-x    6 root     root          4096 Jan 15 02:39 etc
drwxr-xr-x    2 root     root          4096 Jan 15 02:04 log
drwxr-xr-x    5 root     root          4096 Jan 15 02:39 plugins

In addition, I think the sudo command should be added to the mirror, and the kuiper user should be given the permission to execute sudo without password. What do you think?

Hi @zhanghongtong - I incorrectly listed the steps in "How to Test" and have revised them. Please run the steps again and please let me know if you're still experiencing issues.
Also - I would not advise adding "sudo" to the images and giving the "kuiper" user password-less access to execute that command - kind of defeats the purpose of locking down the image to avoid privilege escalation. 😄

Perhaps a restricted sudo command would meet what is needed.

On 15/01/2021, at 5:05 PM, Beau Frusetta<EMAIL_ADDRESS>wrote:
Hi, @beaufrusetta https://github.com/beaufrusetta Thanks for your contribution
The compiled alpine image fails to start, and the error Failed to delete original file: /kuiper/etc/kuiper.yaml due to error remove /kuiper/etc/kuiper.yaml: permission denied... The conf util is going to exit. , execute ls -al $KUIPER_HOME to find that the owner of the file is still the root user, please fix it
/kuiper $ ls -al $KUIPER_HOME
total 36
drwxr-xr-x    1 kuiper   kuiper        4096 Jan 15 02:05 .
drwxr-xr-x    1 root     root          4096 Jan 15 02:39 ..
drwxr-xr-x    1 kuiper   kuiper        4096 Jan 15 02:05 bin
drwxr-xr-x    2 root     root          4096 Jan 15 02:04 data
drwxr-xr-x    6 root     root          4096 Jan 15 02:39 etc
drwxr-xr-x    2 root     root          4096 Jan 15 02:04 log
drwxr-xr-x    5 root     root          4096 Jan 15 02:39 plugins
In addition, I think the sudo command should be added to the mirror, and the kuiper user should be given the permission to execute sudo without password. What do you think?
Hi @zhanghongtong https://github.com/zhanghongtong - I incorrectly listed the steps in "How to Test" and have revised them. Please run the steps again and please let me know if you're still experiencing issues.
Also - I would not advise adding "sudo" to the images and giving the "kuiper" user password-less access to execute that command - kind of defeats the purpose of locking down the image to avoid privilege escalation. 😄
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub https://github.com/emqx/kuiper/pull/689#issuecomment-760631161, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB6TVIPRRIOOKPZSEW3C6G3SZ65J5ANCNFSM4WC2C7IA.

Perhaps a restricted sudo command would meet what is needed.

On 15/01/2021, at 5:05 PM, Beau Frusetta<EMAIL_ADDRESS>wrote:
Hi, @beaufrusetta https://github.com/beaufrusetta Thanks for your contribution
The compiled alpine image fails to start, and the error Failed to delete original file: /kuiper/etc/kuiper.yaml due to error remove /kuiper/etc/kuiper.yaml: permission denied... The conf util is going to exit. , execute ls -al $KUIPER_HOME to find that the owner of the file is still the root user, please fix it
/kuiper $ ls -al $KUIPER_HOME
total 36
drwxr-xr-x    1 kuiper   kuiper        4096 Jan 15 02:05 .
drwxr-xr-x    1 root     root          4096 Jan 15 02:39 ..
drwxr-xr-x    1 kuiper   kuiper        4096 Jan 15 02:05 bin
drwxr-xr-x    2 root     root          4096 Jan 15 02:04 data
drwxr-xr-x    6 root     root          4096 Jan 15 02:39 etc
drwxr-xr-x    2 root     root          4096 Jan 15 02:04 log
drwxr-xr-x    5 root     root          4096 Jan 15 02:39 plugins
In addition, I think the sudo command should be added to the mirror, and the kuiper user should be given the permission to execute sudo without password. What do you think?
Hi @zhanghongtong https://github.com/zhanghongtong - I incorrectly listed the steps in "How to Test" and have revised them. Please run the steps again and please let me know if you're still experiencing issues.
Also - I would not advise adding "sudo" to the images and giving the "kuiper" user password-less access to execute that command - kind of defeats the purpose of locking down the image to avoid privilege escalation. 😄
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub https://github.com/emqx/kuiper/pull/689#issuecomment-760631161, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB6TVIPRRIOOKPZSEW3C6G3SZ65J5ANCNFSM4WC2C7IA.

Perhaps a restricted sudo command would meet what is needed.
On 15/01/2021, at 5:05 PM, Beau Frusetta <notifications<EMAIL_ADDRESS>wrote:
Hi, @beaufrusettahttps://github.com/beaufrusetta Thanks for your contribution
The compiled alpine image fails to start, and the error Failed to delete original file: /kuiper/etc/kuiper.yaml due to error remove /kuiper/etc/kuiper.yaml: permission denied... The conf util is going to exit. , execute ls -al $KUIPER_HOME to find that the owner of the file is still the root user, please fix it
/kuiper $ ls -al $KUIPER_HOME
total 36
drwxr-xr-x    1 kuiper   kuiper        4096 Jan 15 02:05 .
drwxr-xr-x    1 root     root          4096 Jan 15 02:39 ..
drwxr-xr-x    1 kuiper   kuiper        4096 Jan 15 02:05 bin
drwxr-xr-x    2 root     root          4096 Jan 15 02:04 data
drwxr-xr-x    6 root     root          4096 Jan 15 02:39 etc
drwxr-xr-x    2 root     root          4096 Jan 15 02:04 log
drwxr-xr-x    5 root     root          4096 Jan 15 02:39 plugins
In addition, I think the sudo command should be added to the mirror, and the kuiper user should be given the permission to execute sudo without password. What do you think?
Hi @zhanghongtonghttps://github.com/zhanghongtong - I incorrectly listed the steps in "How to Test" and have revised them. Please run the steps again and please let me know if you're still experiencing issues.
Also - I would not advise adding "sudo" to the images and giving the "kuiper" user password-less access to execute that command - kind of defeats the purpose of locking down the image to avoid privilege escalation. 😄
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/emqx/kuiper/pull/689#issuecomment-760631161, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AB6TVIPRRIOOKPZSEW3C6G3SZ65J5ANCNFSM4WC2C7IA.

Perhaps a restricted sudo command would meet what is needed.
On 15/01/2021, at 5:05 PM, Beau Frusetta <notifications<EMAIL_ADDRESS>wrote:
Hi, @beaufrusettahttps://github.com/beaufrusetta Thanks for your contribution
The compiled alpine image fails to start, and the error Failed to delete original file: /kuiper/etc/kuiper.yaml due to error remove /kuiper/etc/kuiper.yaml: permission denied... The conf util is going to exit. , execute ls -al $KUIPER_HOME to find that the owner of the file is still the root user, please fix it
/kuiper $ ls -al $KUIPER_HOME
total 36
drwxr-xr-x    1 kuiper   kuiper        4096 Jan 15 02:05 .
drwxr-xr-x    1 root     root          4096 Jan 15 02:39 ..
drwxr-xr-x    1 kuiper   kuiper        4096 Jan 15 02:05 bin
drwxr-xr-x    2 root     root          4096 Jan 15 02:04 data
drwxr-xr-x    6 root     root          4096 Jan 15 02:39 etc
drwxr-xr-x    2 root     root          4096 Jan 15 02:04 log
drwxr-xr-x    5 root     root          4096 Jan 15 02:39 plugins
In addition, I think the sudo command should be added to the mirror, and the kuiper user should be given the permission to execute sudo without password. What do you think?
Hi @zhanghongtonghttps://github.com/zhanghongtong - I incorrectly listed the steps in "How to Test" and have revised them. Please run the steps again and please let me know if you're still experiencing issues.
Also - I would not advise adding "sudo" to the images and giving the "kuiper" user password-less access to execute that command - kind of defeats the purpose of locking down the image to avoid privilege escalation. 😄
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/emqx/kuiper/pull/689#issuecomment-760631161, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AB6TVIPRRIOOKPZSEW3C6G3SZ65J5ANCNFSM4WC2C7IA.

Perhaps a restricted sudo command would meet what is needed.

On 15/01/2021, at 5:05 PM, Beau Frusetta<EMAIL_ADDRESS>wrote:
Hi, @beaufrusetta https://github.com/beaufrusetta Thanks for your contribution
The compiled alpine image fails to start, and the error Failed to delete original file: /kuiper/etc/kuiper.yaml due to error remove /kuiper/etc/kuiper.yaml: permission denied... The conf util is going to exit. , execute ls -al $KUIPER_HOME to find that the owner of the file is still the root user, please fix it
/kuiper $ ls -al $KUIPER_HOME
total 36
drwxr-xr-x    1 kuiper   kuiper        4096 Jan 15 02:05 .
drwxr-xr-x    1 root     root          4096 Jan 15 02:39 ..
drwxr-xr-x    1 kuiper   kuiper        4096 Jan 15 02:05 bin
drwxr-xr-x    2 root     root          4096 Jan 15 02:04 data
drwxr-xr-x    6 root     root          4096 Jan 15 02:39 etc
drwxr-xr-x    2 root     root          4096 Jan 15 02:04 log
drwxr-xr-x    5 root     root          4096 Jan 15 02:39 plugins
In addition, I think the sudo command should be added to the mirror, and the kuiper user should be given the permission to execute sudo without password. What do you think?
Hi @zhanghongtong https://github.com/zhanghongtong - I incorrectly listed the steps in "How to Test" and have revised them. Please run the steps again and please let me know if you're still experiencing issues.
Also - I would not advise adding "sudo" to the images and giving the "kuiper" user password-less access to execute that command - kind of defeats the purpose of locking down the image to avoid privilege escalation. 😄
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub https://github.com/emqx/kuiper/pull/689#issuecomment-760631161, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB6TVIPRRIOOKPZSEW3C6G3SZ65J5ANCNFSM4WC2C7IA.

I don't think it's necessary at all. The application runs well without issue with the dockerfiles I've modified.

Perhaps a restricted sudo command would meet what is needed.

On 15/01/2021, at 5:05 PM, Beau Frusetta<EMAIL_ADDRESS>wrote:
Hi, @beaufrusetta https://github.com/beaufrusetta Thanks for your contribution
The compiled alpine image fails to start, and the error Failed to delete original file: /kuiper/etc/kuiper.yaml due to error remove /kuiper/etc/kuiper.yaml: permission denied... The conf util is going to exit. , execute ls -al $KUIPER_HOME to find that the owner of the file is still the root user, please fix it
/kuiper $ ls -al $KUIPER_HOME
total 36
drwxr-xr-x    1 kuiper   kuiper        4096 Jan 15 02:05 .
drwxr-xr-x    1 root     root          4096 Jan 15 02:39 ..
drwxr-xr-x    1 kuiper   kuiper        4096 Jan 15 02:05 bin
drwxr-xr-x    2 root     root          4096 Jan 15 02:04 data
drwxr-xr-x    6 root     root          4096 Jan 15 02:39 etc
drwxr-xr-x    2 root     root          4096 Jan 15 02:04 log
drwxr-xr-x    5 root     root          4096 Jan 15 02:39 plugins
In addition, I think the sudo command should be added to the mirror, and the kuiper user should be given the permission to execute sudo without password. What do you think?
Hi @zhanghongtong https://github.com/zhanghongtong - I incorrectly listed the steps in "How to Test" and have revised them. Please run the steps again and please let me know if you're still experiencing issues.
Also - I would not advise adding "sudo" to the images and giving the "kuiper" user password-less access to execute that command - kind of defeats the purpose of locking down the image to avoid privilege escalation. 😄
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub https://github.com/emqx/kuiper/pull/689#issuecomment-760631161, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB6TVIPRRIOOKPZSEW3C6G3SZ65J5ANCNFSM4WC2C7IA.

I don't think it's necessary at all. The application runs well without issue with the dockerfiles I've modified.

Hi, @beaufrusetta
There's one thing that puzzles me that executing make docker can build the correct docker image, but when I executing docker build--no-cache-t emqx/kuiper:$(git describe--tags--alway)-alpine-f deploy/docker/Dockerfile-alpine .  When the image is built with the problem of permission denied, make docker uses docker buildx build, which should have the same effect as docker build

Hi, @beaufrusetta
There's one thing that puzzles me that executing make docker can build the correct docker image, but when I executing docker build--no-cache-t emqx/kuiper:$(git describe--tags--alway)-alpine-f deploy/docker/Dockerfile-alpine .  When the image is built with the problem of permission denied, make docker uses docker buildx build, which should have the same effect as docker build

Also - I would not advise adding "sudo" to the images and giving the "kuiper" user password-less access to execute that command - kind of defeats the purpose of locking down the image to avoid privilege escalation. 😄

I think adding sudo commands makes debugging easier to deploy, @jinfahua  don't you think?

Also - I would not advise adding "sudo" to the images and giving the "kuiper" user password-less access to execute that command - kind of defeats the purpose of locking down the image to avoid privilege escalation. 😄

I think adding sudo commands makes debugging easier to deploy, @jinfahua  don't you think?

Check for builds that match 1.1.1 and aren't the ones that you just built. Adding sudo will negate removing root access.

Check for builds that match 1.1.1 and aren't the ones that you just built. Adding sudo will negate removing root access.

Check for builds that match 1.1.1 and aren't the ones that you just built.
I don't understand

Check for builds that match 1.1.1 and aren't the ones that you just built.
I don't understand

@beaufrusetta
Run docker build --no-cache -t emqx/kuiper:$(git describe --tags --alway)-alpine -f deploy/docker/Dockerfile-alpine . and
run  docker run -it --rm emqx/kuiper:$(git describe --tags --alway)-alpine sh -c "ls -al /kuiper", The file permissions issue persists, please fix it

@beaufrusetta
Run docker build --no-cache -t emqx/kuiper:$(git describe --tags --alway)-alpine -f deploy/docker/Dockerfile-alpine . and
run  docker run -it --rm emqx/kuiper:$(git describe --tags --alway)-alpine sh -c "ls -al /kuiper", The file permissions issue persists, please fix it

Adding sudo will negate removing root access.

I discussed with @jinfahua  that you're right about the sudo command, and we shouldn't add it.

Adding sudo will negate removing root access.

I discussed with @jinfahua  that you're right about the sudo command, and we shouldn't add it.

@beaufrusetta
Run docker build --no-cache -t emqx/kuiper:$(git describe --tags --alway)-alpine -f deploy/docker/Dockerfile-alpine . and
run  docker run -it --rm emqx/kuiper:$(git describe --tags --alway)-alpine sh -c "ls -al /kuiper", The file permissions issue persists, please fix it

Hi @zhanghongtong - I'm not sure what issue you are seeing, but if you could run the following commands and copy/paste the output here, that will help. I've run the following commands (on a machine that I haven't used for kuiper development) successfully and no file permissions exist. I've also asked a few others from the team to run the PR test, and they have also been able to run the test successfully without any issues. What I think might be happening is that your commands are executing the build process against an old Dockerfile or is running an old Dockerfile.
The best way to debug this is to start from the beginning and walk it through step by step.

Let's make sure that you are running these commands from a clean directory. In your terminal window, execute the following from a directory where you normally develop code, which will clone my branch and create a root folder to the following commands from: git clone --single-branch --branch run-container-as-kuiper-user https://github.com/beaufrusetta/kuiper.git kuiper-pr-test-clean

Immediately after the git clone command is run, please run this command: cd kuiper-pr-test-clean

You should now be in the kuiper-pr-test-clean directory - confirm by running pwd - the output should say something similar to /home/beau/development/kuiper-pr-test-clean

For debugging purposes, run the following (and save the output for a later step) - this will be the image tag of the docker image you'll be building: echo emqx/kuiper:$(git describe --tags --always)-alpine

Go ahead now and build the docker image, using the command straight from the Makefile (I've substituted the TARGET and VERSION variables): docker buildx build --no-cache --platform=linux/amd64 -t emqx/kuiper:$(git describe --tags --always)-alpine -f deploy/docker/Dockerfile-alpine . --load

Run the following command to verify that there is now an alpine based image of Kuiper built and it matches the tag displayed in Step 4: docker images --filter=reference='emqx/kuiper:*-alpine' --format "{{.Repository}}:{{.Tag}}"

If the image built properly and you've confirmed that with the previous step, you will now run/test the image with the following command: docker run -it --rm emqx/kuiper:$(git describe --tags --always)-alpine /bin/sh

The container should now be running, and you should see something similar to the following:

If you've made it to the end of this, and all your output matches my output, then everything should be working properly as I modified it. The last image shows that I'm running a container utilizing the same tagging scheme as the one that was built, it displays output stating "File Deleted" (which means it has proper directory permissions to manage files), and the ls -lah command that I run shows that the current directory and all child directories are owned by the kuiper user.
Please complete this process and let me know if you are still having issues. If you do happen to run into an error, a screenshot of the error(s) would be helpful. Also helpful would be a screenshot of cat .git/config file in the directory you are working in as well as the output of pwd in the directory you are working in.

@beaufrusetta
Run docker build --no-cache -t emqx/kuiper:$(git describe --tags --alway)-alpine -f deploy/docker/Dockerfile-alpine . and
run  docker run -it --rm emqx/kuiper:$(git describe --tags --alway)-alpine sh -c "ls -al /kuiper", The file permissions issue persists, please fix it

Hi @zhanghongtong - I'm not sure what issue you are seeing, but if you could run the following commands and copy/paste the output here, that will help. I've run the following commands (on a machine that I haven't used for kuiper development) successfully and no file permissions exist. I've also asked a few others from the team to run the PR test, and they have also been able to run the test successfully without any issues. What I think might be happening is that your commands are executing the build process against an old Dockerfile or is running an old Dockerfile.
The best way to debug this is to start from the beginning and walk it through step by step.

Let's make sure that you are running these commands from a clean directory. In your terminal window, execute the following from a directory where you normally develop code, which will clone my branch and create a root folder to the following commands from: git clone --single-branch --branch run-container-as-kuiper-user https://github.com/beaufrusetta/kuiper.git kuiper-pr-test-clean

Immediately after the git clone command is run, please run this command: cd kuiper-pr-test-clean

You should now be in the kuiper-pr-test-clean directory - confirm by running pwd - the output should say something similar to /home/beau/development/kuiper-pr-test-clean

For debugging purposes, run the following (and save the output for a later step) - this will be the image tag of the docker image you'll be building: echo emqx/kuiper:$(git describe --tags --always)-alpine

Go ahead now and build the docker image, using the command straight from the Makefile (I've substituted the TARGET and VERSION variables): docker buildx build --no-cache --platform=linux/amd64 -t emqx/kuiper:$(git describe --tags --always)-alpine -f deploy/docker/Dockerfile-alpine . --load

Run the following command to verify that there is now an alpine based image of Kuiper built and it matches the tag displayed in Step 4: docker images --filter=reference='emqx/kuiper:*-alpine' --format "{{.Repository}}:{{.Tag}}"

If the image built properly and you've confirmed that with the previous step, you will now run/test the image with the following command: docker run -it --rm emqx/kuiper:$(git describe --tags --always)-alpine /bin/sh

The container should now be running, and you should see something similar to the following:

If you've made it to the end of this, and all your output matches my output, then everything should be working properly as I modified it. The last image shows that I'm running a container utilizing the same tagging scheme as the one that was built, it displays output stating "File Deleted" (which means it has proper directory permissions to manage files), and the ls -lah command that I run shows that the current directory and all child directories are owned by the kuiper user.
Please complete this process and let me know if you are still having issues. If you do happen to run into an error, a screenshot of the error(s) would be helpful. Also helpful would be a screenshot of cat .git/config file in the directory you are working in as well as the output of pwd in the directory you are working in.

@beaufrusetta  Works for me.  Had an issue with the docker buildx (experimental feature needs enabling)

@beaufrusetta  Works for me.  Had an issue with the docker buildx (experimental feature needs enabling)

Go ahead now and build the docker image, using the command straight from the Makefile (I've substituted the TARGET and VERSION variables): docker buildx build --no-cache --platform=linux/amd64 -t emqx/kuiper:$(git describe --tags --always)-alpine -f deploy/docker/Dockerfile-alpine . --load

@beaufrusetta In this step, using docker build instead of docker buildx build, I'll have the problem I'm talking about, please check
docker build --no-cache -t emqx/kuiper:$(git describe --tags --alway)-alpine -f deploy/docker/Dockerfile-alpine .

Go ahead now and build the docker image, using the command straight from the Makefile (I've substituted the TARGET and VERSION variables): docker buildx build --no-cache --platform=linux/amd64 -t emqx/kuiper:$(git describe --tags --always)-alpine -f deploy/docker/Dockerfile-alpine . --load

@beaufrusetta In this step, using docker build instead of docker buildx build, I'll have the problem I'm talking about, please check
docker build --no-cache -t emqx/kuiper:$(git describe --tags --alway)-alpine -f deploy/docker/Dockerfile-alpine .

Go ahead now and build the docker image, using the command straight from the Makefile (I've substituted the TARGET and VERSION variables): docker buildx build --no-cache --platform=linux/amd64 -t emqx/kuiper:$(git describe --tags --always)-alpine -f deploy/docker/Dockerfile-alpine . --load

@beaufrusetta In this step, using docker build instead of docker buildx build, I'll have the problem I'm talking about, please check
docker build --no-cache -t emqx/kuiper:$(git describe --tags --alway)-alpine -f deploy/docker/Dockerfile-alpine .

@zhanghongtong I just ran that, without buildx, and it ran perfectly fine on my machine.

Can you please run your build and execution and provide screenshots as I have? If not - I'm not sure I can help you any further.

Go ahead now and build the docker image, using the command straight from the Makefile (I've substituted the TARGET and VERSION variables): docker buildx build --no-cache --platform=linux/amd64 -t emqx/kuiper:$(git describe --tags --always)-alpine -f deploy/docker/Dockerfile-alpine . --load

@beaufrusetta In this step, using docker build instead of docker buildx build, I'll have the problem I'm talking about, please check
docker build --no-cache -t emqx/kuiper:$(git describe --tags --alway)-alpine -f deploy/docker/Dockerfile-alpine .

@zhanghongtong I just ran that, without buildx, and it ran perfectly fine on my machine.

Can you please run your build and execution and provide screenshots as I have? If not - I'm not sure I can help you any further.

@beaufrusetta
I noticed that in your operation, the output format of docker build is not the same as mine, it looks like the format of docker buildx build, I'm not sure if that's a problem, here's a screenshot of my

clone kuiper

build docker image

run docker

@beaufrusetta
I noticed that in your operation, the output format of docker build is not the same as mine, it looks like the format of docker buildx build, I'm not sure if that's a problem, here's a screenshot of my

clone kuiper

build docker image

run docker

Verified the alpine version of docker build works:
jim@jim-NUC7i5DNHE:~/sandbox-tmp/kuiper-pr-test-clean$ docker run -it --rm emqx/kuiper:1.1.1-3-g89251f2-alpine /bin/sh
/kuiper/etc/sources/edgex.yaml
Find env: KUIPER_HOME=/kuiper, start to handle it.
not concerned env KUIPER_HOME=/kuiper, skip it.
Find env: KUIPER__BASIC__CONSOLELOG=true, start to handle it.
-------------------
Conf file kuiper:
 basic:
  consoleLog: true
  debug: false
  fileLog: true
  ip: <IP_ADDRESS>
  maxAge: 72
  pluginHosts: https://www.emqx.io/downloads
  port: 20498
  prometheus: false
  prometheusPort: 20499
  restIp: <IP_ADDRESS>
  restPort: 9081
  rotateTime: 24
rule:
  checkpointInterval: 300000
  qos: 0
sink:
  cacheThreshold: 10
  cacheTriggerCount: 15
  disableCache: true

File Deleted
/kuiper $
/kuiper $ ls -al
total 28
drwxr-xr-x    1 kuiper   kuiper        4096 Jan 25 16:10 .
drwxr-xr-x    1 root     root          4096 Jan 25 16:11 ..
drwxr-xr-x    1 kuiper   kuiper        4096 Jan 25 16:10 bin
drwxr-xr-x    2 kuiper   kuiper        4096 Jan 25 16:09 data
drwxr-xr-x    6 kuiper   kuiper        4096 Jan 25 16:11 etc
drwxr-xr-x    2 kuiper   kuiper        4096 Jan 25 16:09 log
drwxr-xr-x    5 kuiper   kuiper        4096 Jan 25 16:11 plugins
/kuiper $

Verified the alpine version of docker build works:
jim@jim-NUC7i5DNHE:~/sandbox-tmp/kuiper-pr-test-clean$ docker run -it --rm emqx/kuiper:1.1.1-3-g89251f2-alpine /bin/sh
/kuiper/etc/sources/edgex.yaml
Find env: KUIPER_HOME=/kuiper, start to handle it.
not concerned env KUIPER_HOME=/kuiper, skip it.
Find env: KUIPER__BASIC__CONSOLELOG=true, start to handle it.
-------------------
Conf file kuiper:
 basic:
  consoleLog: true
  debug: false
  fileLog: true
  ip: <IP_ADDRESS>
  maxAge: 72
  pluginHosts: https://www.emqx.io/downloads
  port: 20498
  prometheus: false
  prometheusPort: 20499
  restIp: <IP_ADDRESS>
  restPort: 9081
  rotateTime: 24
rule:
  checkpointInterval: 300000
  qos: 0
sink:
  cacheThreshold: 10
  cacheTriggerCount: 15
  disableCache: true

File Deleted
/kuiper $
/kuiper $ ls -al
total 28
drwxr-xr-x    1 kuiper   kuiper        4096 Jan 25 16:10 .
drwxr-xr-x    1 root     root          4096 Jan 25 16:11 ..
drwxr-xr-x    1 kuiper   kuiper        4096 Jan 25 16:10 bin
drwxr-xr-x    2 kuiper   kuiper        4096 Jan 25 16:09 data
drwxr-xr-x    6 kuiper   kuiper        4096 Jan 25 16:11 etc
drwxr-xr-x    2 kuiper   kuiper        4096 Jan 25 16:09 log
drwxr-xr-x    5 kuiper   kuiper        4096 Jan 25 16:11 plugins
/kuiper $

@Rory-Z in a test @jim-wang-intel ran today, he found the same issue you are having. Looking into it further, it looks like there is an issue with timing inside the dockerfiles - should not be running RUN chown after VOLUME. Since the volume attachments are handled by Docker, if they are run before ownership is established in that tree, those directories will assume root level permissions. If you run VOLUME after running RUN chown, it will assign appropriate permissions based on the chown.
Also worth noting - @jim-wang-intel is runing a 19.* version of Docker on his system, and I'm running a 20.* - which could mean that Docker corrected this behavior in later versions of the engine.
Clear out the previously built image and give it another shot - it should hopefully work this time!

@Rory-Z in a test @jim-wang-intel ran today, he found the same issue you are having. Looking into it further, it looks like there is an issue with timing inside the dockerfiles - should not be running RUN chown after VOLUME. Since the volume attachments are handled by Docker, if they are run before ownership is established in that tree, those directories will assume root level permissions. If you run VOLUME after running RUN chown, it will assign appropriate permissions based on the chown.
Also worth noting - @jim-wang-intel is runing a 19.* version of Docker on his system, and I'm running a 20.* - which could mean that Docker corrected this behavior in later versions of the engine.
Clear out the previously built image and give it another shot - it should hopefully work this time!

Hi, @beaufrusetta thank you for your contribution
We need to install the sudo command in emqx/kuiper:$tag and emqx/kuiper:$tag-slim images, because some plug-in installations require root permissions, such as sinks/tdengine, emqx/kuiper:$tag-alpine can not require sudo commands

Hi, @beaufrusetta thank you for your contribution
We need to install the sudo command in emqx/kuiper:$tag and emqx/kuiper:$tag-slim images, because some plug-in installations require root permissions, such as sinks/tdengine, emqx/kuiper:$tag-alpine can not require sudo commands

Hi, @beaufrusetta thank you for your contribution
We need to install the sudo command in emqx/kuiper:$tag and emqx/kuiper:$tag-slim images, because some plug-in installations require root permissions, such as sinks/tdengine, emqx/kuiper:$tag-alpine can not require sudo commands

I don't think you are understanding what my pull request is referencing. What I'm trying to do is remove the dependency on the root user so that the containers run more securely than they do now. Adding in "sudo" will simply negate all the work I've done to create a secure environment and if that's the route you'd like to go, simply don't merge this PR in, and you'll have exactly the same environment that you'd gain with sudo - processes owned by the root user.
The appropriate way to fix this is to adjust the problem code, like in tdengine, so that the container (at runtime) will not require elevated privileges, and thus be much safer to run in the event that one of the container's processes is compromised.

Hi, @beaufrusetta thank you for your contribution
We need to install the sudo command in emqx/kuiper:$tag and emqx/kuiper:$tag-slim images, because some plug-in installations require root permissions, such as sinks/tdengine, emqx/kuiper:$tag-alpine can not require sudo commands

I don't think you are understanding what my pull request is referencing. What I'm trying to do is remove the dependency on the root user so that the containers run more securely than they do now. Adding in "sudo" will simply negate all the work I've done to create a secure environment and if that's the route you'd like to go, simply don't merge this PR in, and you'll have exactly the same environment that you'd gain with sudo - processes owned by the root user.
The appropriate way to fix this is to adjust the problem code, like in tdengine, so that the container (at runtime) will not require elevated privileges, and thus be much safer to run in the event that one of the container's processes is compromised.

Hi, @beaufrusetta thank you for your contribution
We need to install the sudo command in emqx/kuiper:$tag and emqx/kuiper:$tag-slim images, because some plug-in installations require root permissions, such as sinks/tdengine, emqx/kuiper:$tag-alpine can not require sudo commands

Some additional information, fyi -

It's not necessary to install plugins for most of users.
The default image ships with EdgeX is Alpine, and it does NOT support install plugins, because the based OS lacks some necessary lib dependencies.
We recommend to use emqx/kuiper:$tag and emqx/kuiper:$tag-slim images if user wants to develop & use plugins. Some of plugins need to be downloaded and install to Docker images with 3rd party provided shell scripts.

So would it be possible to implement as following?

Keep Alpine docker image as your current proposal.
Open sudo permission for emqx/kuiper:$tag and emqx/kuiper:$tag-slim images.

Hi, @beaufrusetta thank you for your contribution
We need to install the sudo command in emqx/kuiper:$tag and emqx/kuiper:$tag-slim images, because some plug-in installations require root permissions, such as sinks/tdengine, emqx/kuiper:$tag-alpine can not require sudo commands

Some additional information, fyi -

It's not necessary to install plugins for most of users.
The default image ships with EdgeX is Alpine, and it does NOT support install plugins, because the based OS lacks some necessary lib dependencies.
We recommend to use emqx/kuiper:$tag and emqx/kuiper:$tag-slim images if user wants to develop & use plugins. Some of plugins need to be downloaded and install to Docker images with 3rd party provided shell scripts.

So would it be possible to implement as following?

Keep Alpine docker image as your current proposal.
Open sudo permission for emqx/kuiper:$tag and emqx/kuiper:$tag-slim images.

Hi, @beaufrusetta thank you for your contribution
We need to install the sudo command in emqx/kuiper:$tag and emqx/kuiper:$tag-slim images, because some plug-in installations require root permissions, such as sinks/tdengine, emqx/kuiper:$tag-alpine can not require sudo commands

I don't think you are understanding what my pull request is referencing. What I'm trying to do is remove the dependency on the root user so that the containers run more securely than they do now. Adding in "sudo" will simply negate all the work I've done to create a secure environment and if that's the route you'd like to go, simply don't merge this PR in, and you'll have exactly the same environment that you'd gain with sudo - processes owned by the root user.
The appropriate way to fix this is to adjust the problem code, like in tdengine, so that the container (at runtime) will not require elevated privileges, and thus be much safer to run in the event that one of the container's processes is compromised.

The problem is that tdengine is a 3rd party software, and the plugin install procedure requires to install the dependencies before using it. The install shell script is not owned by us, we cannot fix it...

Hi, @beaufrusetta thank you for your contribution
We need to install the sudo command in emqx/kuiper:$tag and emqx/kuiper:$tag-slim images, because some plug-in installations require root permissions, such as sinks/tdengine, emqx/kuiper:$tag-alpine can not require sudo commands

I don't think you are understanding what my pull request is referencing. What I'm trying to do is remove the dependency on the root user so that the containers run more securely than they do now. Adding in "sudo" will simply negate all the work I've done to create a secure environment and if that's the route you'd like to go, simply don't merge this PR in, and you'll have exactly the same environment that you'd gain with sudo - processes owned by the root user.
The appropriate way to fix this is to adjust the problem code, like in tdengine, so that the container (at runtime) will not require elevated privileges, and thus be much safer to run in the event that one of the container's processes is compromised.

The problem is that tdengine is a 3rd party software, and the plugin install procedure requires to install the dependencies before using it. The install shell script is not owned by us, we cannot fix it...

Hi, @beaufrusetta thank you for your contribution
We need to install the sudo command in emqx/kuiper:$tag and emqx/kuiper:$tag-slim images, because some plug-in installations require root permissions, such as sinks/tdengine, emqx/kuiper:$tag-alpine can not require sudo commands

I don't think you are understanding what my pull request is referencing. What I'm trying to do is remove the dependency on the root user so that the containers run more securely than they do now. Adding in "sudo" will simply negate all the work I've done to create a secure environment and if that's the route you'd like to go, simply don't merge this PR in, and you'll have exactly the same environment that you'd gain with sudo - processes owned by the root user.
The appropriate way to fix this is to adjust the problem code, like in tdengine, so that the container (at runtime) will not require elevated privileges, and thus be much safer to run in the event that one of the container's processes is compromised.

The problem is that tdengine is a 3rd party software, and the plugin install procedure requires to install the dependencies before using it. The install shell script is not owned by us, we cannot fix it...

I feel like you could fix that problem with a multi-stage build, and bring over the appropriate binaries. You could setup the whole tdengine in a build process prior to the final image, and lock it down. Those changes are definitely out of my scope at this point. I'm going to scope down my changes to the alpine based dockerfile only - and back out all of my changes to the other dockerfiles.

Hi, @beaufrusetta thank you for your contribution
We need to install the sudo command in emqx/kuiper:$tag and emqx/kuiper:$tag-slim images, because some plug-in installations require root permissions, such as sinks/tdengine, emqx/kuiper:$tag-alpine can not require sudo commands

I don't think you are understanding what my pull request is referencing. What I'm trying to do is remove the dependency on the root user so that the containers run more securely than they do now. Adding in "sudo" will simply negate all the work I've done to create a secure environment and if that's the route you'd like to go, simply don't merge this PR in, and you'll have exactly the same environment that you'd gain with sudo - processes owned by the root user.
The appropriate way to fix this is to adjust the problem code, like in tdengine, so that the container (at runtime) will not require elevated privileges, and thus be much safer to run in the event that one of the container's processes is compromised.

The problem is that tdengine is a 3rd party software, and the plugin install procedure requires to install the dependencies before using it. The install shell script is not owned by us, we cannot fix it...

I feel like you could fix that problem with a multi-stage build, and bring over the appropriate binaries. You could setup the whole tdengine in a build process prior to the final image, and lock it down. Those changes are definitely out of my scope at this point. I'm going to scope down my changes to the alpine based dockerfile only - and back out all of my changes to the other dockerfiles.

Hi, @beaufrusetta thank you for your contribution
We need to install the sudo command in emqx/kuiper:$tag and emqx/kuiper:$tag-slim images, because some plug-in installations require root permissions, such as sinks/tdengine, emqx/kuiper:$tag-alpine can not require sudo commands

I don't think you are understanding what my pull request is referencing. What I'm trying to do is remove the dependency on the root user so that the containers run more securely than they do now. Adding in "sudo" will simply negate all the work I've done to create a secure environment and if that's the route you'd like to go, simply don't merge this PR in, and you'll have exactly the same environment that you'd gain with sudo - processes owned by the root user.
The appropriate way to fix this is to adjust the problem code, like in tdengine, so that the container (at runtime) will not require elevated privileges, and thus be much safer to run in the event that one of the container's processes is compromised.

The problem is that tdengine is a 3rd party software, and the plugin install procedure requires to install the dependencies before using it. The install shell script is not owned by us, we cannot fix it...

I feel like you could fix that problem with a multi-stage build, and bring over the appropriate binaries. You could setup the whole tdengine in a build process prior to the final image, and lock it down. Those changes are definitely out of my scope at this point. I'm going to scope down my changes to the alpine based dockerfile only - and back out all of my changes to the other dockerfiles.

Thanks for your suggestions. The plugin install is a very dynamic process - maybe user need to install different version of dependencies, and it cannot be determined before user start to use it.
I think scope down changes to the alpine based dockerfile only is ok. Sorry for having not find the problem in advance.
Thank you!

Hi, @beaufrusetta thank you for your contribution
We need to install the sudo command in emqx/kuiper:$tag and emqx/kuiper:$tag-slim images, because some plug-in installations require root permissions, such as sinks/tdengine, emqx/kuiper:$tag-alpine can not require sudo commands

I don't think you are understanding what my pull request is referencing. What I'm trying to do is remove the dependency on the root user so that the containers run more securely than they do now. Adding in "sudo" will simply negate all the work I've done to create a secure environment and if that's the route you'd like to go, simply don't merge this PR in, and you'll have exactly the same environment that you'd gain with sudo - processes owned by the root user.
The appropriate way to fix this is to adjust the problem code, like in tdengine, so that the container (at runtime) will not require elevated privileges, and thus be much safer to run in the event that one of the container's processes is compromised.

The problem is that tdengine is a 3rd party software, and the plugin install procedure requires to install the dependencies before using it. The install shell script is not owned by us, we cannot fix it...

I feel like you could fix that problem with a multi-stage build, and bring over the appropriate binaries. You could setup the whole tdengine in a build process prior to the final image, and lock it down. Those changes are definitely out of my scope at this point. I'm going to scope down my changes to the alpine based dockerfile only - and back out all of my changes to the other dockerfiles.

Thanks for your suggestions. The plugin install is a very dynamic process - maybe user need to install different version of dependencies, and it cannot be determined before user start to use it.
I think scope down changes to the alpine based dockerfile only is ok. Sorry for having not find the problem in advance.
Thank you!


Use resource binaries on Series.to_list for strings

Still WIP, depends on https://github.com/rusterlium/rustler/pull/485.

If you folks are OK with cargo temporarily having a Git dependency, this is good to go.
Compared to the latest release, main encodes a utf-8 series to list 10x faster and uses twice less memory.

Note: this PR also has the foundation so we get zero-copy interop with Nx.

:green_heart: :blue_heart: :purple_heart: :yellow_heart: :heart:


Group conversation comments classification

Is your feature request related to a problem? Please describe.
Yes. Typically in group conversation of chat apps, we find that one of person says for example 'I got into university X' and there will be 50 messages like - 'wow', 'nice', 'congrats', 'you did it', etc. All of these messages have equal status that of a "message" so when another user comes online 3 hrs later, he has to scroll up through 50 such messages to find out what the main message actually was. So in active group people miss a lot of imp messages.
Describe the solution you'd like
Ideally such messages should be identified as comment and by default shown in collapsed mode under the main post. In above scenario, main message would be "I got into university X" and below it should be "50 comments made" and no more, clicking on this link should open them all.
Describe alternatives you've considered
Providing a default comment option but that is user dependent and will require educating users to use chat app more responsibly which is not always practical. Its better if we can do this using NLP.
Additional context
One challenge using NLP approach to solving this problem is, for multiple languages, we will need multiple trained modules which is not scalable across multiple languages. This is an open problem for us at the moment and it will be amazing if someone can come up with a solution that is scalable across multiple low resource languages.

Hey, I am applying in RSOC this year and would like to get assigned to this issue.

Hey, I am applying in RGSoC this year and would like to get assigned to this issue.

Sure @Mishrasubha . Can you please post ideas that you have in mind for solving this problem in the slack group?

A.'I got into university X' and there will be 50 messages like - 'wow', 'nice', 'congrats', 'you did it'

this task can be modeled as a classification task to predict whether a response is relevant for a query or statement.
If multiple responses are relevant for a query or proposition, then all the messages/responses will be coalesced under a single category.
This can be done in different ways. The representation of a message and corresponding responses is the key.
a. A netwok consisting of LSTM (shared weights) to represent the message and response using word embeddings.
b. A dot product of final hidden states can determine the relevance of a response conditioned on the original message.
c. The final output layer includes a sigmoid with mean squared error as the loss function.

B. For multiple languages

First task is the indentification of language for each word.
We will consider the approaches used in language identification in code-mixed settings (where different words are written in roman script).
The language identification task is a classification task where each class denoted a language.
a. For each word, we will use embeddings for each character and a LSTM/BiLSTM learns the representation of each word.
b. The final layer is a softmax where no of nodes in the output layer = no of languages we have
Once the language is identified, the words corresponding to a specific language represent the response.
For every language, we can have models for task A to find the relevance of the responses.


/nourish set is available without op

How to reproduce

Setup a survival / hardcore world
Enter /nourish set carbohydrates 1
The command executes successfully

Expected behaviour
/nourish get should work
/nourish set shouldn't work

This has been fixed in v1.2.1, I removed both /nourish get and /nourish set from survival, as they exist for creative shenanigans and debugging, and getting a precise internal value feels out of place in survival, thank you for your report.

This has been fixed in v1.2.1, I removed both /nourish get and /nourish set from survival, as they exist for creative shenanigans and debugging, and getting a precise internal value feels out of place in survival, thank you for your report.


PostCSS with pure CSS doesn't make any code transformation

Laravel Mix Version: 2.0
Node Version (node -v): 9.8.0
NPM Version (npm -v): 5.6.0
OS: Ubuntu 17.10

Description:
I'm trying to use PostCss writing pure CSS, but the compiled CSS doesn't have any transformation. Using PostCSS with Sass works.
Steps To Reproduce:
webpack.mix.js
const mix = require('laravel-mix');

mix.styles('resources/assets/css/index.css', 'public/css/app.css')
  .options({
    postCss: [
      require('postcss-cssnext')()
    ],
  });

index.css
:root {
  --mainColor: red;
}

html {
  background-color: var(--mainColor);
  border-radius: 5px;
}

See #617.

Also looking over  #1012 may help.

Nice @devcircus. I've read the PR and used the following code:
mix.postCss('resources/assets/css/index.css', 'public/css/app.css')
  .options({
    postCss: [
      require('postcss-cssnext')() //eslint-disable-line
    ],
  })
  .version();

It works.


add owners file support

What type of PR is this?
/kind feature
What this PR does / why we need it:

/lgtm && /lgtm cancel
/approve && /approve cancel

Which issue(s) this PR fixes: #6

@edisonxiang , have you tested this feature on a sample repository ?

@sids-b yep. I tested it in my repository:)
https://github.com/edisonxiang/ci-bot-test

@sids-b yep. I tested it in my repository:)
https://github.com/edisonxiang/ci-bot-test

Great!! Maybe we can merge this now and keep adding/improving features.

@sids-b Thanks