Proposal to speed up repeated Docker based deploys

The Problem
When deploying with Docker we end up installing all the gems from scratch each time, even if the Gemfile hasn't changed. On my smallish demo project the bundle install step inside the running container takes about 90 seconds.
Proposed solution
If we moved the bundle install step (and the bundle config set ... steps) into the Dockerfile then we could take advantage of Docker layer caching and we'd only have to install gems when the Gemfile changes.
I've tested a very crude version of this change and in my demo project a second full deploy (without changes to Gemfile) takes about 2 min 30 seconds compared to it taking about 4 minutes with the currently implemented approach.
Complicating factors
Since we currently allow people to choose between using their own Dockerfile or an auto-generated one we'd need to handle both cases, and we'd have to require people to handle the bundle config and bundle install steps in their own Dockerfile. That would be non-backwards-compatible breaking change, so we'd probably want to consider bumping the MAJOR portion of the version number (bump to 2.0.0).
Example Dockerfile
Here's an example Dockerfile that is currently working with my demo project (and my hacked up modification to serverless-ruby-layer). The bits about creating and moving into /var/gem_build are there to accommodate other parts of the existing implementation, but since the resulting image won't be distributed for production it may not be necessary to do things in that directory, and we might be able to use the default working directory of /var/task just to keep things simple.
FROM lambci/lambda:build-ruby2.7 AS base

RUN yum install -y postgresql-devel

RUN gem update bundler

RUN mkdir /var/gem_build

WORKDIR /var/gem_build

RUN bundle config set --local path build
RUN bundle config set --local without test development

COPY Gemfile* .

RUN bundle install

CMD "/bin/bash"

And here's the output of a first build taking almost 2 minutes:
$ time docker build .
[+] Building 113.2s (15/15) FINISHED
 => [internal] load build definition from Dockerfile                                                            0.0s
 => => transferring dockerfile: 363B                                                                            0.0s
 => [internal] load .dockerignore                                                                               0.0s
 => => transferring context: 2B                                                                                0.0s
 => [internal] load metadata for docker.io/lambci/lambda:build-ruby2.7                                          0.0s
 => CACHED [ 1/10] FROM docker.io/lambci/lambda:build-ruby2.7                                                   0.0s
 => [internal] load build context                                                                               0.0s
 => => transferring context: 61B                                                                                0.0s
 => [ 2/10] RUN echo "yo!"                                                                                0.4s
 => [ 3/10] RUN yum install -y postgresql-devel                                                                13.5s
 => [ 4/10] RUN gem update bundler                                                                             12.2s
 => [ 5/10] RUN mkdir /var/gem_build                                                                            0.4s
 => [ 6/10] WORKDIR /var/gem_build                                                                              0.0s
 => [ 7/10] RUN bundle config set --local path build                                                            0.5s
 => [ 8/10] RUN bundle config set --local without test development                                              0.4s
 => [ 9/10] COPY Gemfile* .                                                                                0.0s
 => [10/10] RUN bundle install                                                                                84.0s
 => exporting to image                                                                                1.5s
 => => exporting layers                                                                                1.5s
 => => writing image sha256:b3e4ef459cc93a9a4d754447d6225b581a01a349f6507cc620fac2994aa62fe0                    0.0s

Use 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them

real    1m54.092s
user    0m0.449s
sys     0m0.394s

And the output of a second build taking less than 1 second:
$ time docker build .
[+] Building 0.1s (15/15) FINISHED
 => [internal] load build definition from Dockerfile                                                            0.0s
 => => transferring dockerfile: 37B                                                                             0.0s
 => [internal] load .dockerignore                                                                               0.0s
 => => transferring context: 2B                                                                                0.0s
 => [internal] load metadata for docker.io/lambci/lambda:build-ruby2.7                                          0.0s
 => [ 1/10] FROM docker.io/lambci/lambda:build-ruby2.7                                                          0.0s
 => [internal] load build context                                                                               0.0s
 => => transferring context: 61B                                                                                0.0s
 => CACHED [ 2/10] RUN echo "yo!"                                                                               0.0s
 => CACHED [ 3/10] RUN yum install -y postgresql-devel                                                          0.0s
 => CACHED [ 4/10] RUN gem update bundler                                                                       0.0s
 => CACHED [ 5/10] RUN mkdir /var/gem_build                                                                     0.0s
 => CACHED [ 6/10] WORKDIR /var/gem_build                                                                       0.0s
 => CACHED [ 7/10] RUN bundle config set --local path build                                                     0.0s
 => CACHED [ 8/10] RUN bundle config set --local without test development                                       0.0s
 => CACHED [ 9/10] COPY Gemfile* .                                                                              0.0s
 => CACHED [10/10] RUN bundle install                                                                           0.0s
 => exporting to image                                                                                0.0s
 => => exporting layers                                                                                0.0s
 => => writing image sha256:b3e4ef459cc93a9a4d754447d6225b581a01a349f6507cc620fac2994aa62fe0                    0.0s

Use 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them

real    0m0.661s
user    0m0.193s
sys     0m0.139s

Lingering questions
Maybe there's some reason that I'm not aware of that doing bundle install as a Dockerfile layer won't work, or is problematic? Are there advantages to doing it after the container is built instead of as part of the container build process?
@navarasu If this sounds like an approach that you're open to investigating I'd be happy to submit a PR.

@jagthedrummer Give me sometime. Let me release 1.6.0 by cleaning up gemfury related stuff and replacing 2.5 with 2.7 examples.
Regarding improving the performance of repeated work, I have other ideas like,

Skip Repeated Deployment:
It is not only building time even deploying layer is slower. So i planned add skip deploy layer option
Deploy only on any change
Finally skip deploy if there is no change in gemfile.
Alternatively we can also cache the gemlayer zip itself like in other serverless plugins

I like the caching docker idea but it does not support of non docker use cases.
Assuming that most of them uses docker option, we can include this. But we need to see how to implement this without breaking existing use case.
After releasing the current version, I will come up with plan to add this without breaking exiting use case or implement no deploy option  directly
Thanks


clBuildProgram is passing NULL for options string

Technically, this is illegal. I have not seen a failure due to this, though. Attached is a patch.
patch.diff.zip

Updated


Fix conflict markers in timestamp.txt

These are showing up in the UI!
Thanks for the great tool :)

Closed in favour of https://github.com/jakobzhao/virus/pull/35


Add a function to predict a value from a csv file. Part2

#147

@gieljnssns congrats on pulling all these merges off. There really has been a lot changed since you initially released this PR. I'm impressed.

Hi @gieljnssns, is this ready to merge? Other than the needed conflict solve?


fix non-gz compression

quick fix for #131

good point! Accepted upon a small cosmetic modification


Is it safe to use linux containers on windows?

Hello team,
We are using SQL server linux container on windows machines. Just wanted to confirm if there are an security concerns we should be aware of, while using linux containers on windows machines. Thanks.

No specific security concerns at the moment, but keep in mind that there are several unresolved issues with using Linux containers on Windows right now and it's not supported for production use.  One of the main blockers is that LCOW doesnt support containers with more than 2 GB of RAM and SQL Server requires 3.25 to start.

Thanks for a quick response. We started with windows containers but switched to Linux containers as we were facing issues with SQL server agent. SQL jobs would fail with error "sql server agent is not currently running so it cannot be notified of this action".
Moreover I see an issue  where it was suggested to use Linux containers in place of windows for working with SQL server agent.
This  is another issue where similar concern related to SQL agent on windows containers is brought up.

If you use Docker for Windows you wont have this problem with the memory because Docker for Windows creates this MobyLinux VM on HyperV that you can size to whatever memory you want.  The docker CLI on your Windows host will interact with the docker engine inside of the MobyLinux VM and your Linux containers will run on the Linux VM.
https://docs.docker.com/v17.09/docker-for-windows/install/
Sorry this is so complex on Windows right now.  We are working on it with the Windows team....

Yes, we are currently using Docker for Windows, and therefore was wondering on the memory limitation as we can always configure the amount of memory to be allocated for MobyLinux VM. Anyways,  thanks for confirmation.
It would be great if I can get some help on windows authentication/ AAD auth on SQL server containers

Yep, we are working on that too...

Use Linux containers on Linux VMs?  It's thoroughly tested and supported.  It works on any size VM supposing enough memory to support SQL Server itself (3.25 GB of RAM minimum).  The agent works.  Almost all the core engine features work in SQL Server on Linux.  You can use a managed orchestrator service like AKS underneath to easily provide a level of HA, flexibility and automation.  Linux might not be familiar to you, but if it is just a host for a SQL Server that you are connecting to from remotely anyway, maybe it doesn't matter as much what OS the SQL Server is running on?  Maybe it's worth a try and see what you think?  The docker experience itself is really not much different between Windows and Linux.

Thanks for your explanation, but unfortunately we cannot go ahead with Linux VMs.
I went through certain docs where running Linux containers on Windows server 2016 is possible via lcow, but as you pointed out, it has a memory limitation of 2GB on containers.
Is there anyway I could try with some preview version of SQL server Windows containers where agent would work?
If not, then feel free to close this ticket and thanks a lot for your support.

Got it.  Look for something on Windows Server to be available by around end of calendar year.


Extra Powerline separator characters appearing on right side of Airline status bar

environment

vim: v7.4
vim-airline: v0.8
OS: OSX v10.11.4
terminal: iTerm2 2.9.20160510
$TERM variable: xterm-256color
color configuration (:set t_Co?): t_Co=256

actual behavior
I'm seeing some extra Powerline separators on the right side of my status bar. They only show up when my terminal window is larger, as you can see below in the screenshots (not sure if helpful or not). Any idea what's causing this? I wouldn't mind it if they weren't so bright :P
Wider window:

Narrower window:

expected behavior
To now show the extra separators

This is the way airline works. See #157 . I just recently merged a change, that makes this compatible. Please set the variable let g:airline_skip_empty_sections = 1

Thanks, was looking through the docs and missed that somehow.


[Development] Add LocalDev pod debugging

Description
Add debugging capabilites to k8s LocalNet using dlv server and port forwarding.

Summary generated by Reviewpad on 04 Aug 23 08:24 UTC
This pull request includes the following changes:

Added a new make target kube_debug which sets up a port-forwarding to a specific debugging pod.
Added a section on how to debug with dlv in the README.md file.
Updated the Tiltfile to include a new entrypoint for the pocket-image docker build, which enables debugging with dlv.

These changes aim to facilitate debugging and improve the development workflow for Pocket nodes.

Issue
Fixes #183
Type of change
Please mark the relevant option(s):

[x] New feature, functionality or library
[ ] Bug fix
[ ] Code health or cleanup
[ ] Major breaking change
[x] Documentation
[ ] Other

List of changes

Change TiltFile to build pocket containers with dlv and start a debugging server to pocket binary
Documentation on how to setup port-forwarding and IDE debugging client

Testing

[ ] make develop_test; if any code changes were made
[ ] make test_e2e on k8s LocalNet; if any code changes were made
[ ] e2e-devnet-test passes tests on DevNet; if any code was changed
[ ] Docker Compose LocalNet; if any major functionality was changed or introduced
[ ] k8s LocalNet; if any infrastructure or configuration changes were made

Required Checklist

[x] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have added, or updated, godoc format comments on touched members (see: tip.golang.org/doc/comment)
[ ] I have tested my changes using the available tooling
[ ] I have updated the corresponding CHANGELOG

If Applicable Checklist

[ ] I have updated the corresponding README(s); local and/or global
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have added, or updated, mermaid.js diagrams in the corresponding README(s)
[ ] I have added, or updated, documentation and mermaid.js diagrams in shared/docs/* if I updated shared/*README(s)

@Olshansk, I did not manage to make it work with lightweight localnet. I think we should check if it's malfunctioning and ship this without it.
@okdas , Do you think we could toggle liveness/readiness checks with make debug_pod run/cancellation?

@red-0ne What is this still a draft? Asking to understand in review process.

@red-0ne What is this still a draft? Asking to understand in review process.

This still does not have dlv on lightweight localnet. I'm OK having this on k8s only for now and switch it as ready for review.


Fix theia daily validation on Jenkins.

Theia daily validation keeps failing because this error:
Invalid value: "jenkins-theia-daily-flow-visibility-validate-for-period-132-md-0": must be no more than 63 characters
Open this PR to rename the daily job.

/theia-test-e2e

/theia-test-e2e

/theia-test-e2e


Update sbt-js-engine to 1.3.5

About this PR
📦 Updates com.typesafe.sbt:sbt-js-engine from 1.2.3 to 1.3.5
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.typesafe.sbt", artifactId = "sbt-js-engine" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "com.typesafe.sbt", artifactId = "sbt-js-engine" }
}]

labels: sbt-plugin-update, early-semver-minor, semver-spec-minor, commit-count:1

Superseded by #89.


Operation to report whether or not all apps are loaded

Operation should report whether or not all apps are loaded (after Cytoscape has finished loading)

Addressed in 36ea0a7aafb2e99d46ec6054cb333e8a6ab52942, f73773b6be068acf82bb1e3c99ede1a469927892, and a917af1dc9928fc1c9b52dbd1d65c1b5f43f2ace


Event trigger that doesn't on fire on REPLACE FUNCTION

When doing a CREATE OR REPLACE FUNCTION and only the function body changes, we don't need to reload the schema cache. Yet the our recommended event trigger does that: https://postgrest.org/en/stable/references/schema_cache.html#finer-grained-event-trigger
Not sure how feasible it is. This is what the pg guys say on IRC:
stevechavez | Hey all. Q: Is it possible for an event trigger to detect if a function body is changed? i.e. when only executing the REPLACE part of a CREATE OR REPLACE FUNCTION statement?
     peerce | it would probably have to compare the new function body with the old
     peerce | or, I guess, a ddl_command_before event trigger that just checks if the function exists already
     peerce | ugh, to even know if the DDL is a cREATE OR REPLACE FUNCTION, you'll need to dive into the postgresql parse tree
     peerce | this whole endeavor sounds like something I would go to great lengths to avoid doing at all.

ddl_command_before

I think the reference was to ddl_command_start: https://www.postgresql.org/docs/current/event-trigger-definition.html


ci: add build gh workflow

Hey @oleschoenburg I know you wanted to work on the github action. I just wanted to add some small template such that we can already run the tests. I hope it is fine for you.

Adds a workflow to run compilation and tests.

Of course, thanks for taking over!


[WIP] [optional] support loading and saving models with protobuf

related to #372

@wxchan
the license of protobuf? and is it cross platform ?

@guolinke
LICENSE: https://github.com/google/protobuf/blob/master/LICENSE
I add a test and it passes on both linux and osx, I am not sure about windows.
test on osx: https://travis-ci.org/wxchan/LightGBM/jobs/274043104, it takes too long.

@wxchan what is the compression ratio of using protobuf, compared with raw text format ?
I think using protobuf is too heavy, can we just using a simple binary format (like the dataset bin file) ?

@guolinke I didn't test on big model yet. My computer takes too long to load big datasets. The good thing of protobuf is, it's readable through .proto file. We can easily know what features are saved.

@guolinke I made a test on Higgs dataset
text ->proto
after 500 rounds
save: 0.612300s -> 0.023627s
load: 0.471999s -> 0.024712s
size: 13M -> 5.9M

one similar structure: https://github.com/dmlc/treelite/blob/master/src/tree.proto

@wxchan any updates of this ?
this could be merged. but we still need a cross platform solution.

@wxchan it seems that the treelite is like our if-else solution ?

@hcho3
have you used this proto https://github.com/dmlc/treelite/blob/master/src/tree.proto to compress LightGBM model? what's the compression ratio?

@wxchan No, in treelite, protobuf is only for input not for output. (Protobuf is one of four methods to input a model into treelite compiler.) So LightGBM model isn't being translated into protobuf.

I found useful information: https://github.com/thekvs/cpp-serializers
I think cereal is better than protobuf.

@guolinke I already finished this thread.

@wxchan this PR will break the build of VS. I will revert it and merge back after fixing this.

I think I forgot changing some path of file in windows/LightGBM.vcxproj after moving it, is this the reason?

@wxchan it cannot find some ".h" and ".cpp" files, seems are some the auto-generated protobuf files.

@guolinke maybe this one https://github.com/wxchan/LightGBM/blob/1e6091c01f75cbbc86b55b104ae3231d302a0a9f/src/proto/not_implemented/model.pb.h?

@wxchan
yeah, it says cannot find model.pb.h ... .
Maybe forget to add it to these include path ? https://github.com/Microsoft/LightGBM/blob/master/windows/LightGBM.vcxproj#L63

@guolinke yes, I forgot adding it. btw, there are some files for when proto=on, some files for when proto=off, they are controlled by cmake, should I add them all to windows/LightGBM.vcxproj?

@wxchan it seems VS cannot support proto, so we can just disable it


[flutter_webview][platform macOS, windows] Add macOs and Windows support for flutter_webview

In my company we are trying to decide what to use, flutter or react native. Important feature for us is web view. I really like flutter, but I can see that react native web view has macOS and windows support, while flutter web view doesn't.
Are there any plans to add support for macOs and windows? React native library has it so it seems to be doable.

Duplicate of https://github.com/flutter/flutter/issues/37597 and https://github.com/flutter/flutter/issues/41725


[ coverity ] Fix coverity issue

Fix coverity issue 1774230, 1774235, 1774238, 1774239, 1774243

Resolves:
Use of auto that causes a copy (AUTO_CAUSES_COPY)
auto_causes_copy: This lambda has an unspecified return type
copy: This return statement creates a copy.

Self evaluation:

Build test:	 [X]Passed [ ]Failed [ ]Skipped
Run test:	 [X]Passed [ ]Failed [ ]Skipped

:memo: TAOS-CI Version: 1.5.20200925. Thank you for submitting PR #2513. Please a submit 1commit/1PR (one commit per one PR) policy to get comments quickly from reviewers. Your PR must pass all verificiation processes of cibot before starting a review process from reviewers. If you are new member to join this project, please read manuals in documentation folder and wiki page. In order to monitor a progress status of your PR in more detail, visit http://ci.nnstreamer.ai/.


feat: merk state sync chunking

State sync specification required us to make changes to how we handle previously handled chunking.
Before, a single trunk of height =  h / 2 is first sent, the node hash values for subsequent chunks are gotten and then each chunk is retrieved and applied sequentially.
Problems with this:

The trunk height might be larger than the max chunk size (no progress can be made, stalling state sync)
Sequential, doesn't take advantage of connection to multiple nodes (so slow)

This work addresses those problems:

Each chunk now has a minimum height of 2 and maximum height of 3
Can produce single chunk + multi chunk given some limit
When producing multi-chunk, the chunk size expands to fill available data up to some limit (this means no proof size overhead)

Issue being fixed or feature implemented

What was done?

How Has This Been Tested?

Breaking Changes

Checklist:

[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have added or updated relevant unit/integration/functional/e2e tests
[ ] I have made corresponding changes to the documentation

For repository code-owners and collaborators only

[ ] I have assigned this pull request to a milestone

Already included in #292


Enhancement (a non-breaking change which adds functionality)

How the change has been tested
Added test env workflow for Python 3.6/3.7/3.8/3.9 in Windows/MacOS/Linux
Change checklist
Tick the boxes that are relevant to your changes, and delete any items that are not.

[x] I have followed the contribution guidelines for this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] I have added tests that prove my fix is effective or that my feature works
[x] I have checked that new and existing unit tests pass locally with my changes

@Hribek25 please update the docs when this PR is merged, where some typos and more more methods are binded.


Run script by PHP-ffmpeg

Hello
I have some script, which create video.
exec('
ffmpeg -y -i white.mp4 -i love.png -i facebook.jpg -filter_complex "
[1:v]format=rgba, scale=380:-1[v1];
[2:v]format=rgba, scale=50:-1[v2];
[0][v1]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2:shortest=1[ov1];
[ov1][v2]overlay=(main_w-overlay_w)/2-40:(main_h-overlay_h)/2+15:shortest=1" -c:v libx264 love.mp4
');
How I can run this script by your bundle. Thanks for your help

I'm sorry, but we won't write code for you. If you have a specific question, do not hesitate to ask, but we won't write code for you. (SimpleFilter is the key)


breaking, maint: prefix env vars with project name

I've wanted to do this for a while, since when I learned about the binderhub helm chart this was a big confusion point for me. With these names, it would be far clearer.
This is a breaking change though, but I only think jupyterhub/binderhub will be affected, and I can transition that config while bumping to this version.

Wonderful, thanks!


ENH: merge develop improvements on TF 2.4.0

Codecov Report

Merging #162 (8a5bd8d) into master (e419d8e) will decrease coverage by 0.41%.
The diff coverage is 96.38%.

@@            Coverage Diff             @@
##           master     #162      +/-   ##
==========================================
- Coverage   99.52%   99.10%   -0.42%
==========================================
  Files           5        5
  Lines         627      670      +43
==========================================
+ Hits          624      664      +40
- Misses          3        6       +3

Impacted Files
Coverage Δ

scikeras/_saving_utils.py
96.20% <96.20%> (ø)

scikeras/_utils.py
100.00% <100.00%> (ø)

scikeras/utils/transformers.py
99.08% <100.00%> (-0.92%)
:arrow_down:

scikeras/wrappers.py
99.44% <100.00%> (+0.25%)
:arrow_up:

Continue to review full report at Codecov.

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

Codecov Report

Merging #162 (8a5bd8d) into master (e419d8e) will decrease coverage by 0.41%.
The diff coverage is 96.38%.

@@            Coverage Diff             @@
##           master     #162      +/-   ##
==========================================
- Coverage   99.52%   99.10%   -0.42%
==========================================
  Files           5        5
  Lines         627      670      +43
==========================================
+ Hits          624      664      +40
- Misses          3        6       +3

Impacted Files
Coverage Δ

scikeras/_saving_utils.py
96.20% <96.20%> (ø)

scikeras/_utils.py
100.00% <100.00%> (ø)

scikeras/utils/transformers.py
99.08% <100.00%> (-0.92%)
:arrow_down:

scikeras/wrappers.py
99.44% <100.00%> (+0.25%)
:arrow_up:

Continue to review full report at Codecov.

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


Support destroy clusters from s3 bucket using cluster_data.yaml

Destroy clusters using s3 bucket locate in cluster_data.yaml file.
pass --destroy-clusters-from-install-data-directory-using-s3-bucket, this will get all s3 buckets from --clusters-install-data-directory  cluster_data.yaml for each cluster in the directories, extract it and run destroy cluster.

/verified


chore: add newInternal and newOutofRange

Adds new abstraction of NewInternalError and NewOutOfRange error to replace those used in trading service.

Need for trading so pushing through.


fix<EMAIL_ADDRESS>

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

npm package (@next dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Can you provide examples of rendering bitmap as texture for 2D images?

I'm studying OpenGL and Google Filament, Because just started to learn graphics, I don't know how to use this library to draw a rectangle on the android screen and the local bitmap as texture rendering on the rectangle, I saw the wallpaper demo render colors to skybox, but doesn't seem to support bitmap. other cases are triangular or cube, I try to modify texture in the triangle of code, but the picture does not show, just a grey triangle, can you provide the code, how to use bitmap as texture rendering it in rectangular or full screen?

Hey @oHuflying  I am in same boat. Did you find any reference? I have learned OpenGL and able to draw basic things using OpenGL. From last one week, I am trying to put together a minimal example of a C++ program (OSX) that uses filament and draw a triangle with some texture on it.
It would be great if you can share the project which does simple rendering using filament.
Also, if there is any tutorial available as didn't find any reference document on how to do accomplish X using filament.


[QUESTION] Pass Int as page index

Hi,
first of all, fantastic paging component! Second, I'm a SwiftUI beginner, so please bare with me :)
I have this app project where the weeks of the current year plays a central role. Each view represents one week and the users can swipe between weeks or select a single week which then will be presented in the page viewer. I have been following the SwiftUIPager instructions and a simplified example of my setup looks like this (basically like the instructions):
import SwiftUIPager

struct ContentView: View {
    @StateObject var page: Page = .withIndex(someValue)

    var body: some View {
        Pager(page: page,
                          data: items,
                          id: \.self,
                          content: { index in
                            //... some code
        })
    }
}

Since my page index always corresponds to the users selected week I'm wondering if it's possible to replace @StateObject var page: Page = .withIndex(someValue) with something like @State var pageIndex = someValue? And then use pageIndex in Pager, like:
Pager(page: $pageIndex, data: ...
Or, as in my case. Use the already defined selected week value (Int) as page index?
I have tried this but I'm getting a warning saying: "Cannot convert value of type 'Binding' to expected argument type 'Page'.
Thanks!

@skegget why do you want it to be a Binding? What's the problem with defining it as StateObject? Pager used to take a Binding back then but that changed recently as it gave more control over the view update. Long story short, Pager was using several State variables along with this Binding so wrapping all this into an ObservableObject was a better solution.

@skegget why do you want it to be a Binding? What's the problem with defining it as StateObject? Pager used to take a Binding back then but that changed recently as it gave more control over the view update. Long story short, Pager was using several State variables along with this Binding so wrapping all this into an ObservableObject was a better solution.

Hi!
I have been thinking about what you said and I'm about to do some changes to my code. But I have some additional questions. And again, I'm a beginner so I might have gotten this all wrong.
As I mentioned above, my app I centered around weeks. Today I have a separate @Published variable for the 'selectedWeek' but I'm thinking that I might as well use the page number to keep it clean (one page = one week). The thing is that I want to react on page changes, in other words when the user swipes and selects another page (week). When this happens I want to trigger functions in a custom ObservableObject class. But I don't really know how to actually get notified on any page change base on the same instance.
I hope this makes any sense. Thanks!

Hi!
I have been thinking about what you said and I'm about to do some changes to my code. But I have some additional questions. And again, I'm a beginner so I might have gotten this all wrong.
As I mentioned above, my app I centered around weeks. Today I have a separate @Published variable for the 'selectedWeek' but I'm thinking that I might as well use the page number to keep it clean (one page = one week). The thing is that I want to react on page changes, in other words when the user swipes and selects another page (week). When this happens I want to trigger functions in a custom ObservableObject class. But I don't really know how to actually get notified on any page change base on the same instance.
I hope this makes any sense. Thanks!

Hi @skegget . You can use onPageChanged or onPageWillChange modifiers on Pager to get notified on page index changes and execute any method you need in your ObservableObject.
If you need to refresh a view when the page changes, you can use page.index directly and SwiftUI will take care of everything.
You can see all these scenarios in the sample project

Hi @skegget . You can use onPageChanged or onPageWillChange modifiers on Pager to get notified on page index changes and execute any method you need in your ObservableObject.
If you need to refresh a view when the page changes, you can use page.index directly and SwiftUI will take care of everything.
You can see all these scenarios in the sample project

Sorry, forgot to reply on this! Many thanks for your help!

Sorry, forgot to reply on this! Many thanks for your help!


Regenerate class diagram

Issue description
Describe your issue in detail here
After proc/ content has been refined, the class diagram (#14 ) should be regenerated
Definition Of Ready (DoR)
This issue can be worked on if

[ ] a developer is assigned
[x] the issue is labeled
[ ] the issue is assigned to the current sprint
[ ] the issue is estimated
[ ] a meaningful title has been set
[ ] the issue is described in detail

Hey team! Please add your planning poker estimate with Zenhub @BeierKevin @FloBaumi @roman533


Issue #51, Fix the issue with the column length mismatch

Fix the issue with the column length mismatch: the 'D' column should be 8 characters long, and the 'L' column should be 1 character long.
Issue #51.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Mahdi Rastegari Koopaei seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

Hi @mahdirastegari. Thank you for your valuable submission! Before we can proceed with integrating your contribution, could you please take a moment to sign the CLA? Without it we cannot move move forward.


VirusTotal says this image contain coinminer

Actions to reproduce
docker pull gliderlabs/logspout
docker save gliderlabs/logspout > logspout.tar

upload this tar to virustotal. Screen attached

Confirmed building locally and uploading that to VirusTotal yields the same result. However, Kaskersky doesn't report anything. I wonder if this is a false-positive from VirusTotal.

Btw, there is no such issue in previous versions.

I exported the filesystem of a running container based on that image and scanned it. VirusTotal detects the same issue but won't show me file where it detected the ad-aware....

Any help in locating the root cause here would be greatly appreciated

I think #490 resolves this.
https://www.virustotal.com/gui/file-analysis/OGQxMTE3YTM0MzQxYjcwZTM4M2FmZTlhNTE0YjE5NDg6MTYwMzM4MzQyMA==/detection
docker pull gliderlabs/logspout:master
docker save gliderlabs/logspout:master > logspout_master.tar

releasing this as v3.2.12. image up soon


Speed up discovery sample generation for many language-API pairs

Currently runDiscoGen only accepts one discovery file and one language. To generate samples for multiple language-API pairs require starting up Gradle and JVM each time, which take multiple minutes to do across cloud.
I made a small experiment: allowing multiple discovery files but still only one language and generate API for one language across cloud. The time reduced from one minute (with Gradle daemon on, this would be multiple minutes with it off) to about three seconds. The bash-builtin time command reports close to 100% CPU utilization; distributing the computation across multiple threads should make it faster still.
Ideally we will want a generation config file so that we can run the tool similar to how we might run "make".

Fixed by #133


bug: Build gradle conflict with locaNotification plugin

From @danielfpedro on April 27, 2015 14:16
Type: bug
Platform: all
Sice I add crosswalk with ionic browser add cosswalk my project is builded with gradle instead ant and is resulting this issue.
:compileDebugJavaC:\teste-ionic\platforms\android\src\de\appplant\cordova\plugin
\localnotification\LocalNotification.java:495: error: cannot find symbol
                    webView.evaluateJavascript(js, null);</span>

Copied from original issue: driftyco/ionic#3626

From @butchewing on April 27, 2015 17:33
+1 Simply updating Ionic will install Crosswalk. According to the plugin developer, the Local Notifications plugin is not Crosswalk compatible yet.

Since there isnt much to do here for the CLI, closing the issue.


Downstream test: enable JSCS tests.

Fixes #1247

Current coverage is 100.00%

Merging #1320 into master will not affect coverage as of 64f3a37

@@            master   #1320   diff @@
======================================
  Files            1       1
  Stmts         2991    2991
  Branches       589     589
  Methods          0       0
======================================
  Hit           2991    2991
  Partial          0       0
  Missed           0       0

Review entire Coverage Diff as of 64f3a37

Powered by Codecov. Updated on successful CI builds.

Hmm, apparently it's failing at Esmangle now.

:+1:


json data accessed via facebook api

I'm getting this error when i try to convert my json file to csv.
Traceback (most recent call last):
File "json2csv.py", line 120, in
loader.write_csv(filename=outfile)
File "json2csv.py", line 71, in write_csv
writer.writeheader()
AttributeError: DictWriter instance has no attribute 'writeheader'
need some help

Which version of Python are you using? writeheader was only added in 2.7 if you're using an older version you'll have to upgrade https://docs.python.org/2/library/csv.html#csv.DictWriter.writeheader
If you install the optional unicodecsv dependency, that library has the method defined.

Thanks for the revert. I'm converting data extracted from facebook in JSON format to CSV and did download the package json2csv. But i got an error when i installed "pip install -r requirements.txt", is that causing some issues ???
The error i get is:
Command "/usr/bin/python -c "import setuptools, tokenize;file='/tmp/pip-build-giCPqH/unicodecsv/setup.py';exec(compile(getattr(tokenize, 'open', open)(file).read().replace('\r\n', '\n'), file, 'exec'))" install --record /tmp/pip-i5f5zO-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-giCPqH/unicodecsv

Your issue is outside the scope of this tool.
You will probably want to install the unicodecsv library if you're dealing with FB data, and it appears there's an issue: either with your setuptools or with your Python installation.
I would try pip install unicodecsv on its own and see if you get more output about the error. It would be a good idea to upgrade to Python 2.7 if you can, it's been out for several years.


Move i18n-keysets-xml tech to enb-bem-i18n

https://github.com/enb-bem/enb-bem-i18n/issues/6

https://github.com/enb-make/enb/issues/181


Fixed OAuth connection to enterprise API

I see that the change to OAuth was made a long time ago. I just started using this library at work, and we use GitHub Enterprise.
When connecting with OAuth, I was getting a failure on the connection when using GitHub.connectToEnterprise(apiUrl, oauthAccessToken) I noticed that there was no option to use login. I thought this was strange and tried to get to the bottom of it.
The reason I have proposed the fix in this way was so that I didn't break the existing functionality (I don't think it was functioning as intended, but if it has gone this long without fixing I have to assume it is working for someone). That is why I didn't touch the existing method.
I am new to this project, so if there is more that I need to do for this to meet your requirements, please let me know.

Why you can't call Builder directly and build with arguments that you need?

That is what have done as a work around, but I figured I would raise this change and see if anyone else has had this problem.


Mid-term Presentation

Here you have the mid-term presentation. If you have any doubt, contact us !
Mid-Term.pdf

You did it very well at the mid-term presentation, but I have something to say about it. The objectives were very clear and rationals, also the project is very innovative. But will the prototype mechanic be able to support and charge with the microcontroler, the components to feed it self and the drivers if are they needed? Also are you going to distribute the weight only to the wrist, or are you going to distribute it?

Hey, I really liked your presentation and I feel that it's going to be a very good and innovative project with grate results. Although the presentation was so clear, I have a question, how are you going to implement the translated words or letters? Are you using an application? Thank you!

Hi everyone!!
First of all congratulations on your job!!
Your presentation was quite clear but you ran out of time so for the next one bear in mind to be briefer.
We didn't understand your objectives. We don't know if you don't know which are your objectives or you just don't know how to write them. The point is that an objective must be concrete and measurable so at the end you can see if you have completed it.
On the other hand, we don't believe that the mechanical part will be comfortable when the glove is worn, but we will wait to test the final prototype to decide on it.
To sum up, we think your project is very complex, but it seems to be well on track!
Eye-Sphere Team.

After attending your presentation our group agree that you have preperated it, but maybe individually, because as all of us know the time was not so adjusted.
We valorate positively the way you work because it’s maybe more difficult to communicate without the possibility of be face to face of all the members.
All the things you present look well worked, so we believe that you are going to get the goals you mark in the first of the project.
We didn’t understood the function of the mechanic part that you have already made in the slide 12 of the presentation.
Keep working and good luck!
Covid Device team.

Good job guys!
The presentation was difficult to manage because of the online coordination between team members.  I think your message was received by the attendance. However, you must be proactive when explaining.
Please answer the formulated questions raised above by the other teams.
@Integrated-Project-2-UVic-UCC/power-glove

You did it very well at the mid-term presentation, but I have something to say about it. The objectives were very clear and rationals, also the project is very innovative. But will the prototype mechanic be able to support and charge with the microcontroler, the components to feed it self and the drivers if are they needed? Also are you going to distribute the weight only to the wrist, or are you going to distribute it?

Nice question. The mechanic device that we want to build will be connected via Port Serial to the PC, so, batteries are not needed. But, in case that we create a wireless device, this must be able to charge enought energy througt rechargeable batteries (we don't rule it out).
About the second question, we will distribute all the weight of the electronics on the wrist, as the components weight so few as a regular wrist watch.

Hey, we really liked your presentation and we feel that it's going to be a very good and innovative project with great results. Although the presentation was so clear, we have a question, how are you going to implement the translated words or letters? Are you using a mobile application?
Thank you!

Hi Marc, thanks for the feedback!
The translated words will be translated through the interpretation of the hand position (six degrees of freedom) and fingers (five degrees of freedom)  and it will be reproduced on the computer screen.
About the question of the mobile app, by the moment we haven't considered it, but it's a very innovative idea for the future of our project!

Hi everyone!!
First of all congratulations on your job!!
Your presentation was quite clear but you ran out of time so for the next one bear in mind to be briefer.
We didn't understand your objectives. We don't know if you don't know which are your objectives or you just don't know how to write them. The point is that an objective must be concrete and measurable so at the end you can see if you have completed it.
On the other hand, we don't believe that the mechanical part will be comfortable when the glove is worn, but we will wait to test the final prototype to decide on it.
To sum up, we think your project is very complex, but it seems to be well on track!
Eye-Sphere Team.

Hello!
First of all, thank you for your advices, at the next presentation we will procure not to pass the time.
Regarding about the objectives, we haven't seen it like this since we have read your feedback, so thanks for it and we will take the relevant measures.
About the mechanical part, we saw what you say when we had printed the first design, and we also mentioned it in the mid-term presentation, so we have to tell you that we are making improvings in the mechanical design to be more comfortable and ergonomic on the wrist.

After attending your presentation our group agree that you have preperated it, but maybe individually, because as all of us know the time was not so adjusted.
We valorate positively the way you work because it’s maybe more difficult to communicate without the possibility of be face to face of all the members.
All the things you present look well worked, so we believe that you are going to get the goals you mark in the first of the project.
We didn’t understood the function of the mechanic part that you have already made in the slide 12 of the presentation.
Keep working and good luck!
Covid Device team.

Hello! Thank you for your feedback, and yes we confirm that the communication is more dificult without the possibility of be face to face.
About the slide 12, we wanted to explain that we did a first design, and following the methodology of PLAN - DO - CHECK - ACT, when we saw that the first design was too weighted and heighted, we designed another piece more ergonomic and light.


Broken underlines for git status output

Issue Type: Bug
The underlines bellow paths in the git status command, when executed in the terminal, are shifted to the right as it can be seen in the attached screenshot. This didn't happen months ago, but started 2-3 months ago IIRC.
VS Code version: Code 1.32.2 (e64cb27b1a0cbbc3f643c9fc6c7d93d6c6509951, 2019-03-13T14:40:37.095Z)
OS version: Linux x64 4.17.0-3-amd64

Does this reproduce in the latest VS Code insiders build with all extensions disabled?
Also, can you provide more information on your environment details by Going to Help > About and Copy the information from over there.

Does this reproduce in the latest VS Code insiders build with all extensions disabled?

It works fine in VS Code insiders

Also, can you provide more information on your environment details by Going to Help > About and Copy the information from over there.

Version: 1.32.3
Commit: a3db5be9b5c6ba46bb7555ec5d60178ecc2eaae4
Date: 2019-03-14T23:38:49.842Z
Electron: 3.1.6
Chrome: 66.0.3359.181
Node.js: 10.2.0
V8: 6.6.346.32
OS: Linux x64 4.17.0-3-amd64

/duplicate https://github.com/Microsoft/vscode/issues/66632


CAMPD Production Deployment Script

Generic Script that will handle all aspects of CAMPD Deployment

tested and passed. ready for deployment.


query builder with no queries

If the query builder has no queries., you have the option to import queries

Could there be an icon  linking to the help for this? (if there is any)

If the query builder has no queries., you have the option to import queries

Were you on the dev site?  Import/export isn't enabled on the main site yet: #1563

yeah ignore. I spotted this on dev (it's the only place I would  see  an empty query builder).


Update classgraph to 4.8.63

Updates io.github.classgraph:classgraph from 4.8.62 to 4.8.63.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "io.github.classgraph", artifactId = "classgraph" } ]

labels: library-update, semver-patch

superseded by #122


FEATURE: Improve lackluster UI

Description
The current design of the todo app is lacking
Improve it
Screenshots

What kind of changes are you looking for in the UI?

Just a simple UI that's easy to navigate. It should also have a dark mode.
Use this figma file as reference, it's an incomplete design but you can improve it if you want to.

Yes! A single PR is alright
I'd soon include a guideline for contributions too. But for now,
you can go ahead
Tee
On Wed, Oct 5, 2022, 15:12 Safal Koirala @.***> wrote:

Yes I can work on it.
Do I create a single PR for all these changes ?
I could not find the contribution guideline so asking here
—
Reply to this email directly, view it on GitHub
https://github.com/slim-codes/todo/issues/10#issuecomment-1268492877,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ARHI437J6HWQQ7EN2FAPBFLWBWEGLANCNFSM6AAAAAAQ36IU3Y
.
You are receiving this because you authored the thread.Message ID:
@.***>

Ok


Please merge down from upstream

The removal of flinching helps a bit with lag

I'm in the process of merging the changes, but there is another pull request that I am also waiting on.


Helm delete/upgrade command hangs

The issue started all of a sudden. In case it means anything, the app on which helm delete hanged for the first time had a statefulset in it.
The following are the version details:
Client: &version.Version{SemVer:"v2.4.2", GitCommit:"82d8e9498d96535cc6787a6a9194a76161d29b4c", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.4.2", GitCommit:"82d8e9498d96535cc6787a6a9194a76161d29b4c", GitTreeState:"clean"}

Let me know if there are any other details I can provide.

@nithin-bose Would it be possible to upload a test chart that demonstrates the behavior?

Also, if you could get us the logs from the tiller pod, that would also help

The chart I was testing was a variation of https://github.com/kubernetes/charts/tree/master/incubator/cassandra
This issue came up only after upgrading/deleting (purging) the chart a few times. Now I dont think any commands that need an edit (install/upgrade/delete) works. Strangely list command still works.
E  2017/06/07 13:13:04 storage.go:139: Getting release history for 'cassandra-test'

E  2017/06/07 13:09:04 storage.go:100: Listing all releases with filter

E  2017/06/07 13:05:10 storage.go:100: Listing all releases with filter

E  2017/06/07 12:53:27 storage.go:100: Listing all releases with filter

E  2017/06/07 12:49:48 storage.go:100: Listing all releases with filter

E  2017/06/07 12:19:51 storage.go:100: Listing all releases with filter

E  2017/06/07 12:14:20 storage.go:100: Listing all releases with filter

E  2017/06/07 12:05:40 storage.go:139: Getting release history for 'cassandra-test'

E  2017/06/07 12:04:00 storage.go:100: Listing all releases with filter

E  2017/06/07 12:02:41 storage.go:100: Listing all releases with filter

E  2017/06/07 11:49:57 client.go:158: Doing get for StatefulSet: "cassandra-statefulset"

E  2017/06/07 11:49:57 client.go:158: Doing get for Service: "cassandra-service"

E  2017/06/07 11:49:57 storage.go:139: Getting release history for 'cassandra-test'

E  2017/06/07 11:49:56 storage.go:51: Create release "cassandra-test" (v1) in storage

E  2017/06/07 11:49:56 release_server.go:983: Hooks complete for post-install cassandra-test

E  2017/06/07 11:49:56 release_server.go:954: Executing post-install hooks for cassandra-test

E  2017/06/07 11:49:55 storage.go:139: Getting release history for 'cassandra-test'

E  2017/06/07 11:49:55 release_server.go:983: Hooks complete for pre-install cassandra-test

E  2017/06/07 11:49:55 release_server.go:954: Executing pre-install hooks for cassandra-test

E  2017/06/07 11:49:55 storage.go:139: Getting release history for 'cassandra-test'

E  2017/06/07 11:49:54 storage.go:139: Getting release history for 'cassandra-test'

E  2017/06/07 11:48:23 storage.go:100: Listing all releases with filter

E  2017/06/07 11:48:02 storage.go:67: Deleting release "cassandra-test" (v1) from storage

E  2017/06/07 11:48:02 release_server.go:983: Hooks complete for post-delete cassandra-test

E  2017/06/07 11:48:02 release_server.go:954: Executing post-delete hooks for cassandra-test

E  2017/06/07 11:43:22 client.go:358: Using reaper for deleting "cassandra-statefulset"

E  2017/06/07 11:43:22 client.go:286: Starting delete for "cassandra-statefulset" StatefulSet

E  2017/06/07 11:43:22 client.go:358: Using reaper for deleting "cassandra-service"

E  2017/06/07 11:43:22 client.go:286: Starting delete for "cassandra-service" Service

E  2017/06/07 11:43:22 storage.go:59: Updating "cassandra-test" (v1) in storage

E  2017/06/07 11:43:22 release_server.go:983: Hooks complete for pre-delete cassandra-test

E  2017/06/07 11:43:22 release_server.go:954: Executing pre-delete hooks for cassandra-test

E  2017/06/07 11:43:22 release_server.go:1038: uninstall: Deleting cassandra-test

E  2017/06/07 11:43:22 storage.go:139: Getting release history for 'cassandra-test'

E  2017/06/07 11:38:36 client.go:158: Doing get for StatefulSet: "cassandra-statefulset"

E  2017/06/07 11:38:36 client.go:158: Doing get for Service: "cassandra-service"

E  2017/06/07 11:38:35 storage.go:139: Getting release history for 'cassandra-test'

E  2017/06/07 11:38:34 storage.go:51: Create release "cassandra-test" (v1) in storage

E  2017/06/07 11:38:34 release_server.go:983: Hooks complete for post-install cassandra-test

E  2017/06/07 11:38:34 release_server.go:954: Executing post-install hooks for cassandra-test

E  2017/06/07 11:38:34 storage.go:139: Getting release history for 'cassandra-test'

E  2017/06/07 11:38:34 release_server.go:983: Hooks complete for pre-install cassandra-test

E  2017/06/07 11:38:34 release_server.go:954: Executing pre-install hooks for cassandra-test

E  2017/06/07 11:38:34 storage.go:139: Getting release history for 'cassandra-test'

E  2017/06/07 11:38:33 storage.go:139: Getting release history for 'cassandra-test'

E  2017/06/07 11:36:02 storage.go:67: Deleting release "cassandra-test" (v1) from storage

E  2017/06/07 11:36:02 release_server.go:983: Hooks complete for post-delete cassandra-test

E  2017/06/07 11:36:02 release_server.go:954: Executing post-delete hooks for cassandra-test

E  2017/06/07 11:35:49 client.go:358: Using reaper for deleting "cassandra-statefulset"

E  2017/06/07 11:35:49 client.go:286: Starting delete for "cassandra-statefulset" StatefulSet

E  2017/06/07 11:35:49 client.go:358: Using reaper for deleting "cassandra-service"

E  2017/06/07 11:35:49 client.go:286: Starting delete for "cassandra-service" Service

E  2017/06/07 11:35:49 storage.go:59: Updating "cassandra-test" (v1) in storage

E  2017/06/07 11:35:49 release_server.go:983: Hooks complete for pre-delete cassandra-test

E  2017/06/07 11:35:49 release_server.go:954: Executing pre-delete hooks for cassandra-test

E  2017/06/07 11:35:49 release_server.go:1038: uninstall: Deleting cassandra-test

E  2017/06/07 11:35:49 storage.go:139: Getting release history for 'cassandra-test'

E  2017/06/07 11:29:09 client.go:158: Doing get for StatefulSet: "cassandra-statefulset"

E  2017/06/07 11:29:09 client.go:158: Doing get for Service: "cassandra-service"

E  2017/06/07 11:29:09 storage.go:139: Getting release history for 'cassandra-test'

E  2017/06/07 11:29:08 storage.go:51: Create release "cassandra-test" (v1) in storage

E  2017/06/07 11:29:08 release_server.go:983: Hooks complete for post-install cassandra-test

E  2017/06/07 11:29:08 release_server.go:954: Executing post-install hooks for cassandra-test

E  2017/06/07 11:29:08 storage.go:139: Getting release history for 'cassandra-test'

E  2017/06/07 11:29:08 release_server.go:983: Hooks complete for pre-install cassandra-test

E  2017/06/07 11:29:08 release_server.go:954: Executing pre-install hooks for cassandra-test

E  2017/06/07 11:29:08 storage.go:139: Getting release history for 'cassandra-test'

E  2017/06/07 11:29:07 storage.go:139: Getting release history for 'cassandra-test'

E  2017/06/07 11:10:28 storage.go:67: Deleting release "cassandra-test" (v1) from storage

E  2017/06/07 11:10:28 release_server.go:983: Hooks complete for post-delete cassandra-test

E  2017/06/07 11:10:28 release_server.go:954: Executing post-delete hooks for cassandra-test

E  2017/06/07 11:09:57 client.go:358: Using reaper for deleting "cassandra-statefulset"

E  2017/06/07 11:09:57 client.go:286: Starting delete for "cassandra-statefulset" StatefulSet

E  2017/06/07 11:09:57 client.go:358: Using reaper for deleting "cassandra-service"

E  2017/06/07 11:09:57 client.go:286: Starting delete for "cassandra-service" Service

E  2017/06/07 11:09:57 storage.go:59: Updating "cassandra-test" (v1) in storage

E  2017/06/07 11:09:57 release_server.go:983: Hooks complete for pre-delete cassandra-test

E  2017/06/07 11:09:57 release_server.go:954: Executing pre-delete hooks for cassandra-test

E  2017/06/07 11:09:57 release_server.go:1038: uninstall: Deleting cassandra-test

E  2017/06/07 11:09:57 storage.go:139: Getting release history for 'cassandra-test'

E  2017/06/07 11:03:53 client.go:158: Doing get for StatefulSet: "cassandra-statefulset"

E  2017/06/07 11:03:53 client.go:158: Doing get for Service: "cassandra-service"

E  2017/06/07 11:03:53 storage.go:139: Getting release history for 'cassandra-test'

E  2017/06/07 11:03:52 storage.go:51: Create release "cassandra-test" (v1) in storage

E  2017/06/07 11:03:52 release_server.go:983: Hooks complete for post-install cassandra-test

E  2017/06/07 11:03:52 release_server.go:954: Executing post-install hooks for cassandra-test

E  2017/06/07 11:03:52 storage.go:139: Getting release history for 'cassandra-test'

E  2017/06/07 11:03:52 release_server.go:983: Hooks complete for pre-install cassandra-test

E  2017/06/07 11:03:52 release_server.go:954: Executing pre-install hooks for cassandra-test

E  2017/06/07 11:03:52 storage.go:139: Getting release history for 'cassandra-test'

E  2017/06/07 11:03:51 storage.go:139: Getting release history for 'cassandra-test'

E  2017/06/07 11:01:46 storage.go:67: Deleting release "cassandra-test" (v1) from storage

E  2017/06/07 11:01:46 release_server.go:983: Hooks complete for post-delete cassandra-test

E  2017/06/07 11:01:46 release_server.go:954: Executing post-delete hooks for cassandra-test

E  2017/06/07 11:01:44 client.go:358: Using reaper for deleting "cassandra-statefulset"

E  2017/06/07 11:01:44 client.go:286: Starting delete for "cassandra-statefulset" StatefulSet

E  2017/06/07 11:01:44 client.go:358: Using reaper for deleting "cassandra-service"

E  2017/06/07 11:01:44 client.go:286: Starting delete for "cassandra-service" Service

E  2017/06/07 11:01:44 storage.go:59: Updating "cassandra-test" (v1) in storage

E  2017/06/07 11:01:44 release_server.go:983: Hooks complete for pre-delete cassandra-test

E  2017/06/07 11:01:44 release_server.go:954: Executing pre-delete hooks for cassandra-test

E  2017/06/07 11:01:44 release_server.go:1038: uninstall: Deleting cassandra-test

E  2017/06/07 11:01:44 storage.go:139: Getting release history for 'cassandra-test'

E  2017/06/07 10:56:51 client.go:158: Doing get for StatefulSet: "cassandra-statefulset"

E  2017/06/07 10:56:51 client.go:158: Doing get for Service: "cassandra-service"

E  2017/06/07 10:56:51 storage.go:139: Getting release history for 'cassandra-test'

E  2017/06/07 10:56:50 storage.go:51: Create release "cassandra-test" (v1) in storage

E  2017/06/07 10:56:50 release_server.go:983: Hooks complete for post-install cassandra-test

E  2017/06/07 10:56:50 release_server.go:954: Executing post-install hooks for cassandra-test

E  2017/06/07 10:56:50 storage.go:139: Getting release history for 'cassandra-test'

E  2017/06/07 10:56:50 release_server.go:983: Hooks complete for pre-install cassandra-test

E  2017/06/07 10:56:50 release_server.go:954: Executing pre-install hooks for cassandra-test

E  2017/06/07 10:56:50 storage.go:139: Getting release history for 'cassandra-test'

E  2017/06/07 10:56:49 storage.go:139: Getting release history for 'cassandra-test'

E  2017/06/07 10:39:15 storage.go:67: Deleting release "cassandra-test" (v1) from storage

E  2017/06/07 10:39:15 release_server.go:983: Hooks complete for post-delete cassandra-test

E  2017/06/07 10:39:15 release_server.go:954: Executing post-delete hooks for cassandra-test

E  2017/06/07 10:39:13 client.go:358: Using reaper for deleting "cassandra-statefulset"

E  2017/06/07 10:39:13 client.go:286: Starting delete for "cassandra-statefulset" StatefulSet

E  2017/06/07 10:39:13 client.go:358: Using reaper for deleting "cassandra-service"

E  2017/06/07 10:39:13 client.go:286: Starting delete for "cassandra-service" Service

E  2017/06/07 10:39:13 storage.go:59: Updating "cassandra-test" (v1) in storage

E  2017/06/07 10:39:13 release_server.go:983: Hooks complete for pre-delete cassandra-test

E  2017/06/07 10:39:13 release_server.go:954: Executing pre-delete hooks for cassandra-test

E  2017/06/07 10:39:13 release_server.go:1038: uninstall: Deleting cassandra-test

E  2017/06/07 10:39:13 storage.go:139: Getting release history for 'cassandra-test'

E  2017/06/07 10:36:05 client.go:158: Doing get for StatefulSet: "cassandra-statefulset"

E  2017/06/07 10:36:05 client.go:158: Doing get for Service: "cassandra-service"

E  2017/06/07 10:36:05 storage.go:139: Getting release history for 'cassandra-test'

E  2017/06/07 10:36:04 storage.go:51: Create release "cassandra-test" (v1) in storage

E  2017/06/07 10:36:04 release_server.go:983: Hooks complete for post-install cassandra-test

E  2017/06/07 10:36:04 release_server.go:954: Executing post-install hooks for cassandra-test

E  2017/06/07 10:36:04 storage.go:139: Getting release history for 'cassandra-test'

E  2017/06/07 10:36:04 release_server.go:983: Hooks complete for pre-install cassandra-test

E  2017/06/07 10:36:04 release_server.go:954: Executing pre-install hooks for cassandra-test

E  2017/06/07 10:36:04 storage.go:139: Getting release history for 'cassandra-test'

E  2017/06/07 10:36:02 storage.go:139: Getting release history for 'cassandra-test'

E  2017/06/07 10:33:03 release_server.go:660: Failed install prepare step: render error in "cassandra/templates/statefulset.yaml": template: cassandra/templates/statefulset.yaml:29:67: executing "cassandra/templates/statefulset.yaml" at <.Values.appName>: can't evaluate field Values in type int

E  2017/06/07 10:33:03 storage.go:139: Getting release history for 'cassandra-test'

E  2017/06/07 10:33:00 storage.go:139: Getting release history for 'cassandra-test'

E  2017/06/07 10:30:59 release_server.go:660: Failed install prepare step: render error in "cassandra/templates/statefulset.yaml": template: cassandra/templates/statefulset.yaml:28:51: executing "cassandra/templates/statefulset.yaml" at <.Values.replicas>: wrong type for value; expected int; got float64

E  2017/06/07 10:30:59 storage.go:139: Getting release history for 'cassandra-test'

E  2017/06/07 10:30:56 storage.go:139: Getting release history for 'cassandra-test'

E  2017/06/07 10:30:19 release_server.go:660: Failed install prepare step: render error in "cassandra/templates/statefulset.yaml": template: cassandra/templates/statefulset.yaml:28:51: executing "cassandra/templates/statefulset.yaml" at <.Values.replicas>: wrong type for value; expected int; got float64

E  2017/06/07 10:30:19 storage.go:139: Getting release history for 'cassandra-test'

E  2017/06/07 10:30:18 storage.go:139: Getting release history for 'cassandra-test'

E  2017/06/07 10:24:13 storage.go:67: Deleting release "cassandra-test" (v1) from storage

E  2017/06/07 10:24:13 release_server.go:983: Hooks complete for post-delete cassandra-test

E  2017/06/07 10:24:13 release_server.go:954: Executing post-delete hooks for cassandra-test

E  2017/06/07 10:24:11 client.go:358: Using reaper for deleting "cassandra-statefulset"

E  2017/06/07 10:24:11 client.go:286: Starting delete for "cassandra-statefulset" StatefulSet

E  2017/06/07 10:24:11 client.go:358: Using reaper for deleting "cassandra-service"

E  2017/06/07 10:24:11 client.go:286: Starting delete for "cassandra-service" Service

E  2017/06/07 10:24:11 storage.go:59: Updating "cassandra-test" (v1) in storage

E  2017/06/07 10:24:11 release_server.go:983: Hooks complete for pre-delete cassandra-test

E  2017/06/07 10:24:11 release_server.go:954: Executing pre-delete hooks for cassandra-test

We actually got exactly the same issue starting this morning. It's just with Charts that we have been using for a while. We are running on GCE.
The client hangs after:
[debug] Fetched helmet/test to test-1.0.4.tgz

After that, nothing happens, ever.
The tiller server only has the following logs:
2017/06/08 09:20:12 storage.go:139: Getting release history for 'test'

Note that running a manual command with helm history test shows all the history. And has exactly the same output on tiller server. So probably the problem is not getting the history, but the thing happening after that.
This happens now for all charts that I have tested.
Also note that we have 2 GCE clusters, one is working perfectly, the other isn't. The cluster that is working updated to 1.6.4 yesterday. The Cluster that is NOT working still runs 1.6.2 for the last month.

Some more information:

Installing a new chart with install works

Then upgrade the exact same chart with the same information hangs, just like everything else.

Installing a new chart with upgrade --install also works

Then upgrade the exact same chart with the same information hangs, just like everything else.

delete's don't work at all

I fixed the issue by deleting the tiller-deploy pod, and letting it create a new one on it's own. Everything works again.

We've run into the same deletion issue in the past week and also used the tiller pod removal to work around it. I'll see if I can grab some debug logs when it happens again.

I am not sure if this means anything, but I am also using GKE. Could this be related to GKE in any way??

It could be related to GKE, but it's probably too early to tell.
When it starts creating and then hangs, can you see any of the resources with kubectl? Specifically, I am wondering if it starts creating (or deleting) an object (like a Deployment or something), and then the API server is stuck waiting for a response. If this is the case, you might see some hint in Kubectl's output that an object is in a weird state.

It could be related to GKE, but it's probably too early to tell.

Experiencing it on a bare-metal cluster. Redeployed the tiller server and deletes are working again.

@technosophos I am having the same issue again. I'm not sure what to look for now but have to restore it now.

kubectl events didn't show anything worthy
kubectl describe <pods,deployments,etc> of the chart that we tried to delete didn't show anything.
There is no logging in tiller anymore (last time there was), with the error: failed to watch file "/var/log/pods/890c5188-4c31-11e7-a851-42010a840088/tiller_0.log": no space left on device

@nithin-bose are you using '--wait' for your upgrades? People are seeing upgrades hang until timeout in #2426 and #2312 since upgrading to 2.4.x. Similar to the behaviour @bviolier describes above, except at the '--wait' stage.

Alright, it sounds like we're zeroing in on a few details:

This seems to happen with at least some versions of Kubernetes 1.6 (not sure which, yet)
At least some people are seeing this without --wait

Can people provide some feedback about what resource kinds are being used? I've heard a few reports that this only happens in charts that use DaemonSets, but I can't verify that.
So if you can, can you provide information about the Kubernetes version, what flags you used on the CLI, and what resource kinds?

@technosophos my team is experiencing the same issue as described. we are able to helm both install, ls, inspect, and status but unable to delete them once they are installed (we don't use upgrade currently so I am unsure if that is broken).
The command "helm delete  --purge" gets stuck for us.
We don't use DaemonSets to the best of my knowledge. The current helm that is getting stuck for us is Airflow which is pretty similar to https://github.com/mumoshu/kube-airflow/blob/master/airflow.all.yaml.
We are running CentOS Linux release 7.3.1611 (Core):
`Client Version: version.Info{Major:"1", Minor:"6", GitVersion:"v1.6.4+coreos.0", GitCommit:"8996efde382d88f0baef1f015ae801488fcad8c4", GitTreeState:"clean", BuildDate:"2017-05-19T21:11:20Z", GoVersion:"go1.7.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"6", GitVersion:"v1.6.4+coreos.0", GitCommit:"8996efde382d88f0baef1f015ae801488fcad8c4", GitTreeState:"clean", BuildDate:"2017-05-19T21:11:20Z", GoVersion:"go1.7.5", Compiler:"gc", Platform:"linux/amd64"}
`
I am happy to answer more specific questions you have.

@whereisaaron @technosophos I am not using --wait . In fact when the issue first occurred, i was deleting with --purge

I'm also NOT using daemonsets.
Once I run into this problem, nothing works anymore. Not even the most simple Charts.
I also did some testing with https://github.com/kubernetes/charts/tree/master/stable/mysql, without persistence. So that's a deployment, service & secret.

Got the issue again this time on GKE 1.6.4
Scenario 1:

Helm install a chart with a statefulset
While the persistent disks were being created (stafulset pods being created), did a helm delete which got hanged

Scenario 1:

Helm install a chart with a statefulset
K8s scheduler refused to create the second staefulset pod out of three due to lack of resources.
Did a helm delete

I think this is could be happening when we try to delete something in an inconsistent state (like being created) Though why this should affect other releases is beyond me.
PS: Did not use --wait in any operations

I was unable to reproduce this on:

minikube with kubernetes v1.6.3
helm v2.4.2

I will try v1.6.4 as I've seen multiple failure reports from that release.

Also unable to reproduce on kubernetes v1.6.4 via minikube..

That makes sense Matthew, it doesn't happen on set times or actions (as far
as we know) so reproducing it is not possible at the moment. It just starts
out of nowhere it, may be after 24 hours, multiple days, or, for most
people, never.
On Tue, Jun 13, 2017, 21:27 Matthew Fisher<EMAIL_ADDRESS>wrote:

Also unable to reproduce on kubernetes v1.6.4 via minikube..
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/kubernetes/helm/issues/2560#issuecomment-308222557,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABMJekVqMm-1F-nZl3Ff0vQ4CyzQM27dks5sDuKTgaJpZM4NzYa1
.

--
Bob

Just to give more info, in my case, this was a fresh GKE cluster like the 3rd or fourth release when this happened. In my case I am using a google disk, which takes some time to come up and so the 3 replica release does take some time (5-6 mins or more) to come up on GKE and not to mention the image pulling time. I have only noticed this issue with releases that have a long startup time.
@bacongobbler I dont use minikube much but but how long does it take to bind the pvc in minikube? It should be quick right?

It took about a week for it to show up on our systems.  I'm trying to debug helm to find out where exactly it's hanging.  I let it run for a long time and this was the result:
# helm delete somethingNotThere --debug
[debug] Created tunnel using local port: '35009'

[debug] SERVER: "localhost:35009"

E0613 13:06:55.720519   29500 portforward.go:178] lost connection to pod
Error: transport is closing

I was also able to resolve the issue by deleting the tiller deployment on kubernetes and then running helm init.
# kubectl delete deployment -n=kube-system tiller-deploy
deployment "tiller-deploy" deleted

# helm init --upgrade
$HELM_HOME has been configured at /root/.helm.

Tiller (the helm server side component) has been upgraded to the current version.
Happy Helming!

# helm delete somethingNotThere --purge
Error: Unable to lock release somethingNotThere: release not found

"I'm a gorilla that turns things off" - @skorski

@skorski just checking, but was there anything available in tiller's pod logs? You could try SSHing into each node and check /var/log to see if there's anything relevant there in the old tiller pod's logs.

@bacongobbler I didn't think to check there while we were having the issue.  There are lots of logs but I'm having trouble isolating which ones were around the time of the stall.  If it happens again, I'll go there first and then post the message.

I'm experiencing this issue too. helm upgrade hangs and Tiller logs hangs on storage.go:139: Getting release history for <release_name>. Also running helm history <release_name> gets stuck with the same log.
Client: &version.Version{SemVer:"v2.4.1", GitCommit:"46d9ea82e2c925186e1fc620a8320ce1314cbb02", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.4.1", GitCommit:"46d9ea82e2c925186e1fc620a8320ce1314cbb02", GitTreeState:"clean"}

same here:
helm delete kafka-pipe --debug
[debug] Created tunnel using local port: '53911'

[debug] SERVER: "localhost:53911"

version:
Client: &version.Version{SemVer:"v2.4.2", GitCommit:"82d8e9498d96535cc6787a6a9194a76161d29b4c", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.4.2", GitCommit:"82d8e9498d96535cc6787a6a9194a76161d29b4c", GitTreeState:"clean"}

Same issue with helm delete --purge CHART after 30 mins the helm delete command is still hanging.  While that is hanging if I run an additional delete it says the chart is already purged, which is the same thing that I see from the logs.
helm delete --purge CHART
Error: release: "CHART" not found

AWS
K8S 1.6.4

helm version
Client: &version.Version{SemVer:"v2.5.0", GitCommit:"012cb0ac1a1b2f888144ef5a67b8dab6c2d45be6", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.5.0", GitCommit:"012cb0ac1a1b2f888144ef5a67b8dab6c2d45be6", GitTreeState:"clean"}

[storage] 2017/06/22 12:42:19 locking release CHART
[storage] 2017/06/22 12:42:19 listing all releases in storage
[storage] 2017/06/22 12:42:19 getting release history for "CHART"
[tiller] 2017/06/22 12:42:19 uninstall: Deleting CHART
[tiller] 2017/06/22 12:42:19 executing 1 pre-delete hooks for CHART
[tiller] 2017/06/22 12:42:19 hooks complete for pre-delete CHART
[storage] 2017/06/22 12:42:19 updating release "CHART.v1"
[kube] 2017/06/22 12:42:19 Starting delete for "CHART" Service
[kube] 2017/06/22 12:42:19 Using reaper for deleting "CHART"
[kube] 2017/06/22 12:42:19 Starting delete for "CHART" StatefulSet
[kube] 2017/06/22 12:42:19 Using reaper for deleting "CHART"
[kube] 2017/06/22 12:43:35 Starting delete for "CHART-configure" ConfigMap
[tiller] 2017/06/22 12:43:35 executing 1 post-delete hooks for CHART
[tiller] 2017/06/22 12:43:35 hooks complete for post-delete CHART
[tiller] 2017/06/22 12:43:35 purge requested for CHART
[storage] 2017/06/22 12:43:35 deleting release "CHART.v1"
[storage] 2017/06/22 12:43:35 unlocking release CHART

A couple of weeks ago we also faced this issue. For this time I just restarted tiller pod and then it works again some time. Then, after about 24 hours, it starts hanging again.
I've also looked at tiller's logs but there is no relevant to failing or error...
For now, we are just keeping restarting tiller to make it work.

It seems like it does'n depend on kind of resources in chart. Now it hangs for any chart.
It hangs for commands
helm upgrade, helm delete, but helm install is ok.
I tried to see tiller logs, but there is only
2017/06/29 08:28:38 storage.go:100: Listing all releases with filter
2017/06/29 08:28:38 storage.go:100: Listing all releases with filter

It means that somehow requests didn't reach tiller RPC at all :(
Guys, any news?

I'm seeing this right now with dry-runs of helm upgrade and am also not seeing anything relevant in the Tiller logs.

We are seeing this in Kolla-Kubernetes land now and I have seen it on my dev cluster. I also did ~650 install && delete --purge with local Tiller in debug but haven't reproduced it there. So far it seems be Tiller pod related.

Its going out to lunch here
https://github.com/kubernetes/helm/blob/master/pkg/storage/storage.go#L163

We are also experiencing this issue with the following version of helm.
Client: &version.Version{SemVer:"v2.5.0", GitCommit:"012cb0ac1a1b2f888144ef5a67b8dab6c2d45be6", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.5.0", GitCommit:"012cb0ac1a1b2f888144ef5a67b8dab6c2d45be6", GitTreeState:"clean"}

We have been able to move past this by deleting the tiller pod and letting the deployment rekick it but there is not any indication.  Initially we thought this might be an issue with our resource utilization of the tiller pod.  I have attached a graph of resource utilization on the tiller right up until the crash.

There is also nothing in the tiller logs to indicate an issue.

Would it be also possible to get this relabeled as a bug?

@thomastaylor312 might be able to label this a bug

There is a race condition with the  Storage.releaseLocksLock.Lock(). If you execute helm delete <releaseName> --purge, hit ctrl-c and then immediately issue another delete command before that one returns you can get into a deadlock where subsequent requests cannot get a lock.
To reproduce with an example chart named "testchart" (can be any chart)
helm install . --name testchart

helm delete testchart --purge
<Ctrl-C>
helm delete testchart --purge

The delete commands will hand and after this you will not be able to delete any charts until Tiller is restarted.
Ive been looking into it heavily and after asking around the response was our mutex protecting a map of mutex's might be a bad idea in the first place. Im still baffled because I cannot yet reproduce this in an extracted example so any help is appreciated.

Oh sorry. I forgot to change that. It has been relabeled

I ran in to the same issue here as well.
Client: &version.Version{SemVer:"v2.5.0", GitCommit:"012cb0ac1a1b2f888144ef5a67b8dab6c2d45be6", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.5.0", GitCommit:"012cb0ac1a1b2f888144ef5a67b8dab6c2d45be6", GitTreeState:"clean"}

Only specific step that I did unlike the others here is that I tried to delete my deployment within the minute of running the deploy command.
Here is the exact install command.
helm install -f values.yaml -n consul --namespace kube-system stable/consul

Then I tried to delete it using helm del consul which never completed. Had to ^C out of it and retry, which is when I started running in to the issue.

@rajiteh I have seen that one hang for a while too. Not permanently though. I believe it blocks because one or more containers gets scheduled on nodes but its image isn't there yet, so it starts downloading. k8s blocks the deletion of the resource until the  images are fully downloaded. This can block a deletion for a while and look like a hang.

This can block a deletion for a while and look like a hang.

While that makes complete sense (and it was probably my fault for being impatient there), it shouldn't have made tiller go in to a dead lock trying to acquire a lock file after that. I confirmed that all resources created by the chart got deleted, yet tiller refused to helm del --purge consul or helm install ... consul
This is what I see in tiller logs when the commands hang:
[storage] 2017/07/18 14:36:12 listing all releases with filter
[storage] 2017/07/18 14:36:26 locking release consul```

This is the output of helm install:
Error: a release named consul already exists.
Run: helm ls --all consul; to check the status of the release
Or run: helm del --purge consul; to delete it

What is even more confusing is that when I do helm ls --all consul I see,
NAME         REVISION    UPDATED                     STATUS     CHART           NAMESPACE
consul       1           Tue Jul 18 10:25:40 2017    DELETED    consul-0.3.0    kube-system

Restarting tiller pod fixes the issue though.

Im convinced the hangs are the result of mutex locking a map of mutexes in Store. Its simply not safe for concurrent access as subsequent requests are hitting locks at different times and causing deadlocks. Its something like this but varies:
reqA->wants to lock a release
reqA->LockLocks()
reqA->LockRelease()
reqA->UnlockLocks()
reqB->wants to lock a release
reqB->LockLocks()
reqB->LockRelease() # Release mutex already locked. Hangs forever.
reqA->wants to unlock a release
reqA->LockLocks() # reqB still has LockLocks locked. Hangs forever.
reqC->wants to lock a release
reqC->LockLocks() # reqB still has LockLocks locked. Hangs forever.

On first examination (and due to my initial lack of understanding of sync) it seems it should all shake out so I spent a lot of time trying to fix the current system but I am now convinced it cannot be fixed as designed.
Essentially the upgrade, delete and rollback funcs all take a lock on the map of release mutexes, and then lock the target release mutex. During this time they attempt to do WAY TOO MANY THINGS including requests to k8s etc but that isn't the actual problem. The existing usage of locks attempts to block subsequent operations on the same release but in the end results in a deadlocked table level lock or deadlocked row level lock.
As far as I can tell, the only state Tiller permanently stores is Release ConfigMaps in k8s. K8s already has some resource update controls in place:
https://kubernetes.io/docs/api-reference/v1.7/#resource-operations
"Replace - For read-then-write operations this is safe because an optimistic lock failure will occur if the resource was modified between the read and write."
"Patches - Patches will never cause optimistic locking failures, and the last write will win."
Im still looking into how Tiller is actually conducting updates to k8s but current intuition is to just ensure we take advantage of optimistic locking in k8s and send request without Tiller locking anything and returning failures when they occur. If thats not sufficient we will need another design.

The approach I described above (removing locks from tiller's storage) seems to be working. Concurrent requests do what is expected to the state of the release system but the failure messages could be better for the subsequent concurrent requests. For example, running two concurrent upgrade commands will yield the successful response for the first and the following for the second:
Error: UPGRADE FAILED: release: "test" already exists

The above response is confusing because release "test" should exist since this is an upgrade. If we include the version by using key instead of Release.Name we could at least show
Error: UPGRADE FAILED: release: "test.v7" already exists

which would at least give some indication that it might be a version specific update problem.
Another minor hiccup is that two concurrent delete requests both report success when in reality the first causes the deletion and the second merely picks up on the same status.
release "test" deleted

Two concurrent deletes with --purge will result in the second failing since the release has already been sent for deletion.
# for second request
Error: release: "test.v3" not found

The resulting state from all ops seems to be fine. I will post PR and do some more strenuous concurrent testing.

Note that Tiller can use storage drivers other than ConfigMaps to keep its release records, such as writing to object storage, and @tamalsaha has a branch with a driver that writes to TPR data.

@technosophos It would be great if this could make it into the next point release but not sure if we can get others to test this before then.

Hey, sorry for interjecting here, but I created smaller PR that seems to fix the issue, while retaining locking feature: https://github.com/kubernetes/helm/pull/2712

I'm getting the same as others here for simple upgrades:
E0806 22:23:46.409124   70180 portforward.go:178] lost connection to pod
Error: UPGRADE FAILED: transport is closing

This happened this time after I bumped the version on a chart, then ran the upgrade.
After this, the kubernetes api dies. Normally it comes back within minute, sometimes much longer..

@xeor That is sounding like a different problem. What do the tiller logs show?

The only errors I can see in the tiller-deploy logs are these (snippets):
....
2017/08/06 20:14:37 client.go:398: Looks like there are no changes for PersistentVolumeClaim "log-1"
2017/08/06 20:14:37 client.go:386: generating strategic merge patch for *unstructured.Unstructured
2017/08/06 20:14:37 client.go:251: error updating the resource "dns":
         Patch https://<IP_ADDRESS>:443/api/v1/namespaces/infra/services/dns: unexpected EOF
2017/08/06 20:14:37 release_server.go:329: warning: Upgrade "infra" failed: Could not get information about the resource: err: Get https://<IP_ADDRESS>:443/apis/extensions/v1beta1/namespaces/infra/deployments/dns: read tcp <IP_ADDRESS>:45962-><IP_ADDRESS>:443: read: connection reset by peer
2017/08/06 20:14:37 storage.go:59: Updating "infra" (v81) in storage
2017/08/06 20:14:37 cfgmaps.go:322: configmaps: update: failed to update: Put https://<IP_ADDRESS>:443/api/v1/namespaces/kube-system/configmaps/infra.v81: read tcp <IP_ADDRESS>:46052-><IP_ADDRESS>:443: read: connection reset by peer
2017/08/06 20:14:37 release_server.go:855: warning: Failed to update release "infra": Put https://<IP_ADDRESS>:443/api/v1/namespaces/kube-system/configmaps/infra.v81: read tcp <IP_ADDRESS>:46052-><IP_ADDRESS>:443: read: connection reset by peer
2017/08/06 20:14:37 storage.go:51: Create release "infra" (v82) in storage
2017/08/06 20:14:37 cfgmaps.go:322: configmaps: create: failed to create: Post https://<IP_ADDRESS>:443/api/v1/namespaces/kube-system/configmaps: read tcp <IP_ADDRESS>:46062-><IP_ADDRESS>:443: read: connection reset by peer
2017/08/06 20:14:37 release_server.go:858: warning: Failed to record release "infra": Post https://<IP_ADDRESS>:443/api/v1/namespaces/kube-system/configmaps: read tcp <IP_ADDRESS>:46062-><IP_ADDRESS>:443: read: connection reset by peer
2017/08/06 20:14:37 grpc: Server.processUnaryRPC failed to write status: stream error: code = Canceled desc = "context canceled"
2017/08/06 20:14:46 storage.go:139: Getting release history for 'infra'
....

I noticed that the kubernetes api pod did complain about duplicated NodePort at the same time. This have been ok for a while, but it showed up as an error. The port is duplicated because one is TCP and one is UDP so it shoulnt have problems binding them. I commended out the UDP port anyhow to see if that makes it better.

Would you mind opening a new ticket? This is definitely a separate issue. Thanks!

@xeor @bacongobbler, was another ticket opened for this similar issue? I'm currently facing the same problem.

@lyndon160 oh... This issue not relevant anymore. Helm 3 (current) isn't even using tiller..


Setting up Daemon -> ActiveRecord in Rails app

Struggling to find a basic setup guide for added Tweetstream to my Rails app. Here's what I have... but its not triggering and creating objects. I also had to strip the logging code out as it kept erroring out, saying it didn't have permission to write to a log file :/
/config/initializers/tweetstream.rb
TweetStream.configure do |config|
  config.consumer_key       = ENV['TWITTER_CONSUMER_KEY']
  config.consumer_secret    = ENV['TWITTER_CONSUMER_SECRET']
  config.oauth_token        = ENV['TWITTER_OAUTH_TOKEN']
  config.oauth_token_secret = ENV['TWITTER_OAUTH_TOKEN_SECRET']
  config.auth_method        = :oauth
end

/bin/tweets_searcher.rb
require 'rubygems'
require 'tweetstream'

ENV["RAILS_ENV"] ||= "development"

root = File.expand_path(File.join(File.dirname(__FILE__), '..'))
require File.join(root, "config", "environment")

daemon = TweetStream::Daemon.new('tracker')
daemon.on_inited do
  ActiveRecord::Base.connection.reconnect!
end
daemon.track('appidea') do |tweet|
  AppIdea.create_from_tweet
end

/app/models/app_idea.rb
class AppIdea < ActiveRecord::Base

  def create_from_tweet
    logger.debug "Should be creating an AppIdea."
    AppIdea.create!(
      tweet: 'example'
    )
  end

end

I then run this line to run the script:
bundle exec ruby bin/tweets_searcher.rb start
But when I tweet something that includes "#appidea" it doesn't create a new object. Any thoughts? It seems like a lot of people are looking for a simple tutorial on how to get something very similar to this working. I've been trying to piece together different parts from different posts but no luck.

Please see the full example here: https://github.com/tweetstream/tweetstream-rails-example


[Event Request] Codeunit 80 "Sales-Post" - procedure "PostSalesLine" - event "OnPostSalesLineOnBeforeInsertCrMemoLine" - Add new Parameters

Due to handle our own logic, we need additional parameters for the standard event "OnPostSalesLineOnBeforeInsertCrMemoLine" in Codeunit 80 "Sales-Post", procedure "PostSalesLine".
OLD CODE:
end else begin
    OnPostSalesLineOnBeforeInsertCrMemoLine(SalesHeader, SalesLine, IsHandled);
    if not IsHandled then begin

NEW CODE:
end else begin
    OnPostSalesLineOnBeforeInsertCrMemoLine(SalesHeader, SalesLine, xSalesLine, SalesInvHeader, SalesCrMemoHeader, IsHandled); // start kvspsa - Added new parameters
    if not IsHandled then begin

OLD PUBLISHER:
[IntegrationEvent(false, false)]
local procedure OnPostSalesLineOnBeforeInsertCrMemoLine(SalesHeader: Record "Sales Header"; SalesLine: Record "Sales Line"; var IsHandled: Boolean)
begin
end;

NEW PUBLISHER:
[IntegrationEvent(false, false)]
// start kvspsa - New parameters added
local procedure OnPostSalesLineOnBeforeInsertCrMemoLine(SalesHeader: Record "Sales Header"; SalesLine: Record "Sales Line"; var xSalesLine: Record "Sales Line"; var SalesInvHeader: Record "Sales Invoice Header"; var SalesCrMemoHdr: Record "Sales Cr.Memo Header"; var IsHandled: Boolean)
// stop kvspsa
begin
end;

Sames as #6563
Hi @RomanZanizdra you are totally right!
Our background processing has been one procedure which takes both parameters, but I already have divided it up.
@AlexanderYakunin
Please remove "SalesInvHeader" as parameter and sorry for this...

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.


Artboard Plus

Artboard Plus
Description of your project: Artboard tools to speed up your Adobe XD workflow.
Link to your project: https://github.com/rodi01/Artboard-Plus-XD
License: MIT
Category: Plugins
Why is it awesome?
As a designer, one of the most daunting things is to keep everything organized, that's why I created Artboard Plus. Hopefully this plugin will help designers speed up their workflow.

Woohoo!!! I love this plugin so much. :-) Please submit a PR and we'll merge it in.


feat: output more info if up to date

Right now when doing pixi global install something on an already up-to-date environment, it will just print that the env is already up-to-date.
This PR introduces a more detailed view of up-to-date environment, which uses the same format as pixi global list

some other niceties 🍪 :

It also move code from cli/global under separate module
I've added test-specific-test that I think it is handy to have when you want to test only one test without running all of them. Also running without --numprocesses=auto make debugger hook work.
I also added output structure for verify_cli_command, so it is more easier to debug what subprocess returned rather than going inside verify_cli_command

upd:
after a discussion with @Hofer-Julian we decided to use always tree output after installing with some information in there
this is how it looks with new colouring and styling:

after a discussion with @Hofer-Julian  we decided to use tree output with some information in there
this is the new output:

Why doe it give the already installed on the simple version and not on the versioned one?

 Why doe it give the already installed on the simple version and not on the versioned one?

Fixed all 3 situations ( so it also output exposes correctly ) and also added a test:


Please add these new Pushsafer Parameter

Confirm
https://www.pushsafer.com/en/pushapi_ext#API-CR
Answer Options
https://www.pushsafer.com/en/pushapi_ext#API-AO
Answer Force
https://www.pushsafer.com/en/pushapi_ext#API-AF

Done in release 2022.1.0


InvalidCastException in NumericUpDown

I am learning so I don't know If I am doing something wrong or it is a bug.
Describe the bug
NumericUpDown shows System.InvalidCastException: Unable to convert object '89.6' of type 'System.Double' to type 'System.Nullable'1[System.Decimal]'.
I am using a class implementing IValueConverter to convert the value.
To Reproduce
Project has just a few lines changed from template:
https://github.com/nsrahmad/7GUI-Avalonia/tree/master/TemperatureConverter
Expected behavior
No errors. The error contains the right answer, so conversion is happening.
Screenshots

Desktop (please complete the following information):

OS: Windows 10
Version 11.0.0-preview4

Additional context
Add any other context about the problem here.

@nsrahmad I think we had a breaking change here in 11.0. The reason is, that double has rounding issues where decimal doesn't have these problems. This is important if you work with percentage or currency values.
I see two options for you:

use decimal in the bound Property
use a Converter

See also: https://github.com/AvaloniaUI/Avalonia/pull/5981

Not related but you also have a typo here

@maxkatz6 Thanks.
@timunie Using decimal sort of worked. But I started to get StackOverflowException if I try to change the value with mouse wheel 3 or 4 times.
It took me some time to remove FormatString to uncover rounding issues in my converter. So trying to convert 1 celsius to fahrenheit would give:
> Console.WriteLine((1M * (9M / 5M)) + 32M);
33.8

But trying to convert back 33.8 to celsius would give:
> Console.WriteLine((33.8M - 32M) * (5M / 9M));
1.0000000000000000000000000001

I had to call decimal.Round on the result to fix it. Thank you for your help.


[Improvement] Support KerberosAuthProvider for Python client

What would you like to be improved?
Currently the Python client does not support Kerberos authentication, which is supported in the Java client. We should support this capability in the Python client.
How should we improve?
No response

May i work on this issue ~

May i work on this issue ~

Sure, you can refer to the implementation in Java Client.


One command install is NOT WORKING!

One command install
Hey @nolimits4web
I'm trying to install it with following command:
git clone https://github.com/framework7io/framework7-template-vue-webpack my-app &&
cd my-app &&
npm install &&
npm run dev

But at last it is showing the following:
 ERROR  Failed to compile with 8 errors                                                                                7:32:07 PM

 error  in ./src/app.vue

Syntax Error: Unexpected token {

 @ ./src/main.js 21:0-24
 @ multi (webpack)-dev-server/client?http://localhost:8080 webpack/hot/dev-server ./src/main.js

 error  in ./src/pages/dynamic-route.vue

Syntax Error: Unexpected token {

 @ ./src/routes.js 4:0-57
 @ ./src/main.js
 @ multi (webpack)-dev-server/client?http://localhost:8080 webpack/hot/dev-server ./src/main.js

 error  in ./src/pages/home.vue

Syntax Error: Unexpected token {

 @ ./src/routes.js 1:0-40
 @ ./src/main.js
 @ multi (webpack)-dev-server/client?http://localhost:8080 webpack/hot/dev-server ./src/main.js

 error  in ./src/pages/about.vue

Syntax Error: Unexpected token {

 @ ./src/routes.js 2:0-42
 @ ./src/main.js
 @ multi (webpack)-dev-server/client?http://localhost:8080 webpack/hot/dev-server ./src/main.js

 error  in ./src/pages/not-found.vue

Syntax Error: Unexpected token {

Screenshot:

Please help me to resolve this.

Input them one at a time

That's the one line command,
git clone https://github.com/framework7io/framework7-template-vue-webpack my-app && cd my-app && npm install && npm run dev