[GitHub] daisy-ycguo closed pull request #368: ingress cleanup: allow default value for httpsNodePort
daisy-ycguo closed pull request #368: ingress cleanup: allow default value for httpsNodePort URL: https://github.com/apache/incubator-openwhisk-deploy-kube/pull/368 This is a PR merged from a forked repository. As GitHub hides the original diff on merge, it is displayed below for the sake of provenance: As this is a foreign pull request (from a fork), the diff is supplied below (as it won't show otherwise due to GitHub magic): diff --git a/helm/openwhisk/templates/nginx-svc.yaml b/helm/openwhisk/templates/nginx-svc.yaml index ff4ba7d..066b81e 100644 --- a/helm/openwhisk/templates/nginx-svc.yaml +++ b/helm/openwhisk/templates/nginx-svc.yaml @@ -11,7 +11,7 @@ metadata: spec: {{- if eq .Values.whisk.ingress.type "LoadBalancer" }} type: LoadBalancer - {{- else if .Values.nginx.httpsNodePort }} + {{- else if eq .Values.whisk.ingress.type "NodePort" }} type: NodePort {{- end }} selector: @@ -20,7 +20,7 @@ spec: - port: {{ .Values.nginx.httpPort }} name: http - port: {{ .Values.nginx.httpsPort }} - {{- if .Values.nginx.httpsNodePort }} + {{- if eq .Values.whisk.ingress.type "NodePort" }} nodePort: {{ .Values.nginx.httpsNodePort }} {{- end }} name: https-api This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] jiangpengcheng commented on a change in pull request #4115: Don't react on Completion message of blocking requests.
jiangpengcheng commented on a change in pull request #4115: Don't react on Completion message of blocking requests. URL: https://github.com/apache/incubator-openwhisk/pull/4115#discussion_r235243689 ## File path: core/invoker/src/main/scala/org/apache/openwhisk/core/containerpool/ContainerProxy.scala ## @@ -530,8 +530,16 @@ class ContainerProxy( activationWithLogs .map(_.fold(_.activation, identity)) .foreach { activation => -// Sending the completionMessage to the controller asynchronously. -sendActiveAck(tid, activation, job.msg.blocking, job.msg.rootControllerIndex, job.msg.user.namespace.uuid, true) +// Sending the completionMessage to the controller asynchronously. But not before result message is sent. Review comment: you're right, one is `ComplectionMessage` and another is `ResultMessage` This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] jiangpengcheng commented on a change in pull request #4115: Don't react on Completion message of blocking requests.
jiangpengcheng commented on a change in pull request #4115: Don't react on Completion message of blocking requests. URL: https://github.com/apache/incubator-openwhisk/pull/4115#discussion_r235243689 ## File path: core/invoker/src/main/scala/org/apache/openwhisk/core/containerpool/ContainerProxy.scala ## @@ -530,8 +530,16 @@ class ContainerProxy( activationWithLogs .map(_.fold(_.activation, identity)) .foreach { activation => -// Sending the completionMessage to the controller asynchronously. -sendActiveAck(tid, activation, job.msg.blocking, job.msg.rootControllerIndex, job.msg.user.namespace.uuid, true) +// Sending the completionMessage to the controller asynchronously. But not before result message is sent. Review comment: you're right, one is `ComplectionMessage` and the other is `ResultMessage` This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] SamHjelmfelt commented on issue #4129: Adding YARNContainerFactory. This allows OpenWhisk to run actions on Apache Hadoop clusters.
SamHjelmfelt commented on issue #4129: Adding YARNContainerFactory. This allows OpenWhisk to run actions on Apache Hadoop clusters. URL: https://github.com/apache/incubator-openwhisk/pull/4129#issuecomment-440477208 For anyone wanting to test this out, here is a quick guide for enabling Docker on YARN: https://community.hortonworks.com/articles/226331/dockerized-yarn-services-quickstart.html It was tested with HDP 3.0.1 from Hortonworks. Available here: https://docs.hortonworks.com/HDPDocuments/HDP3/HDP-3.0.1/index.html The steps are similar with a base Apache Hadoop installation (version 3.1.1 or higher). This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] rabbah commented on issue #4129: Adding YARNContainerFactory. This allows OpenWhisk to run actions on Apache Hadoop clusters.
rabbah commented on issue #4129: Adding YARNContainerFactory. This allows OpenWhisk to run actions on Apache Hadoop clusters. URL: https://github.com/apache/incubator-openwhisk/pull/4129#issuecomment-440475063 勞 this is excellent! This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] SamHjelmfelt opened a new pull request #4129: Adding YARNContainerFactory. This allows OpenWhisk to run actions on Apache Hadoop clusters.
SamHjelmfelt opened a new pull request #4129: Adding YARNContainerFactory. This allows OpenWhisk to run actions on Apache Hadoop clusters. URL: https://github.com/apache/incubator-openwhisk/pull/4129 Thousands of organizations have Apache Hadoop clusters today. By implementing a YARNContainerFactory, OpenWhisk can run actions on Hadoop clusters. This will lower the barrier to adoption and expand the potential use cases for OpenWhisk. ## Description The YARNContainerFactory uses the Apache Hadoop Services REST API to create a single YARN service with a component for each action type. Both simple authentication and Kerberos/SPNEGO are supported. This was tested with Apache Hadoop 3.1.1. https://hadoop.apache.org/docs/r3.1.1/hadoop-yarn/hadoop-yarn-site/yarn-service/YarnServiceAPI.html The implemention is based on the MesosContainerFactory. This was first implemented using Akka HTTP, but was rewritten to use the Apache HTTP client in order to suport SPNEGO. There is a MockYARNRM in the tests directory. This mock RM simulates the YARN Resource Manager REST API and is used for the YARNContainerFactory tests. ## Related issue and scope - [ ] I opened an issue to propose and discuss this change (#) ## My changes affect the following components - [ ] API - [ ] Controller - [ ] Message Bus (e.g., Kafka) - [ ] Loadbalancer - [x] Invoker - [ ] Intrinsic actions (e.g., sequences, conductors) - [ ] Data stores (e.g., CouchDB) - [x] Tests - [ ] Deployment - [ ] CLI - [ ] General tooling - [x] Documentation ## Types of changes - [ ] Bug fix (generally a non-breaking change which closes an issue). - [x] Enhancement or new feature (adds new functionality). - [ ] Breaking change (a bug fix or enhancement which changes existing behavior). ## Checklist: - [x] I signed an [Apache CLA](https://github.com/apache/incubator-openwhisk/blob/master/CONTRIBUTING.md). - [x] I reviewed the [style guides](https://github.com/apache/incubator-openwhisk/wiki/Contributing:-Git-guidelines#code-readiness) and followed the recommendations (Travis CI will check :). - [x] I added tests to cover my changes. - [x] My changes require further changes to the documentation. The website should be updated as well - [x] I updated the documentation where necessary. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] dgrove-oss commented on a change in pull request #367: Helm chart changes
dgrove-oss commented on a change in pull request #367: Helm chart changes URL: https://github.com/apache/incubator-openwhisk-deploy-kube/pull/367#discussion_r235192131 ## File path: helm/openwhisk/values.yaml ## @@ -161,6 +163,7 @@ nginx: httpPort: 80 httpsPort: 443 httpsAdminPort: 8443 + httpsNodePort: 31001 Review comment: Thanks. I think this is ready to go as soon as #368 gets merged. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] dgrove-oss opened a new pull request #368: ingress cleanup: allow default value for httpsNodePort
dgrove-oss opened a new pull request #368: ingress cleanup: allow default value for httpsNodePort URL: https://github.com/apache/incubator-openwhisk-deploy-kube/pull/368 Make usage of nginx.httpsNodePort templates conditional on ingress.type being NodePort to enable a default value for nginx.httpsNodePort to be defined. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] neeraj-laad commented on a change in pull request #367: Helm chart changes
neeraj-laad commented on a change in pull request #367: Helm chart changes URL: https://github.com/apache/incubator-openwhisk-deploy-kube/pull/367#discussion_r235152398 ## File path: helm/openwhisk/values.yaml ## @@ -161,6 +163,7 @@ nginx: httpPort: 80 httpsPort: 443 httpsAdminPort: 8443 + httpsNodePort: 31001 Review comment: I have made other changes from the review. I will wait for your changes to be merged in before progressing on this one further. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] neeraj-laad commented on a change in pull request #367: Helm chart changes
neeraj-laad commented on a change in pull request #367: Helm chart changes URL: https://github.com/apache/incubator-openwhisk-deploy-kube/pull/367#discussion_r235152134 ## File path: helm/openwhisk/README.md ## @@ -0,0 +1,178 @@ +# OpenWhisk + +Apache OpenWhisk is an open source, distributed serverless platform that executes functions in response to events at any scale. + +## Introduction + +The [Apache OpenWhisk](https://openwhisk.apache.org/) serverless platform supports a programming model in which developers write functional logic (called Actions), in any supported programming language, that can be dynamically scheduled and run in response to associated events (via Triggers) from external sources (Feeds) or from HTTP requests. + +This chart will deploy the core OpenWhisk platform to your Kubernetes cluster. In its default configuration, the chart enables runtime support for executing actions written in NodeJS, Python, Swift, Java, PHP, Ruby, Go, and "blackbox" docker containers. The main components of the OpenWhisk platform are a front-end that provides a REST API to the user and the `wsk` CLI, a CouchDB instance that stores user and system data, and a control plane that is responsible for scheduling incoming invocations of user actions onto dedicated Kubernetes worker nodes that have been labeled as "invoker nodes". + +Further documentation of the OpenWhisk system architecture, programming model, tutorials, and sample programs can all be found at on the [Apache OpenWhisk project website](https://openwhisk.apache.org/). + +## Chart Details + +In its default configuration, this chart will create the following Kubernetes resources: +* Externally exposed Services + * nginx -- used to access the deployed OpenWhisk via its REST API. By default, exposed as a NodePort on port 31001. +* Internal Services + * apigateway, controller, couchdb, kafka, nginx, redis, zookeeper +* OpenWhisk control plane Pods: + * DaemonSet: invoker (on all nodes with label `openwhisk-role=invoker`) + * Deployments: apigateway, couchdb, nginx, redis + * SatefulSets: controller, kafka, zookeeper +* Persistent Volume Claims + * couchdb-pvc + * kafka-pvc + * redis-pvc + * zookeeper-pvc-data + * zookeeper-pvc-datalog + +All user interaction with OpenWhisk uses the REST API exposed by the nginx service via its NodePort ingress. + +The chart requires one or more Kubernetes worker nodes to be designated to be used by OpenWhisk's invokers to execute user actions. These nodes are designated by being labeled with `openwhisk-role=invoker` (see below for the `kubectl` command). In its default configuration, the invokers will schedule the containers to execute the user actions on these nodes *without* interacting with the Kubernetes scheduler. + +## Resources Required + +* A Kubernetes cluster with at least 1 worker node with at least 4GB of memory. + +## Prerequisites + +* Kubernetes 1.10 - 1.11.* + +### Image Policy Requirements + +If Container Image Security is enabled, you will not be able to download non-trusted container images. If this is the case, please add the following to the trusted registries so that these container images can be pulled during chart installation: + +* docker.io/openwhisk/* +* docker.io/apache/couchdb:* + +### Persistent Volume Requirements + +This chart requires 5 Persistent Volumes to be created to avoid loss of data. One of the following must be true to satisfy the Persistent Volume requirements for this chart: + +* When the chart is deployed, the value `k8s.persistence.enabled` is set to false to disable usage of Persistent Volumes (for development and test activities). +* The Kubernetes cluster supports Dynamic Volume Provisioning and has a default StorageClass defined with an associated provisioner. +* The Kubernetes cluster supports Dynamic Volume Provisioning and when the chart is deployed, the value `k8s.persistence.defaultStorageClass` is set to a StorageClass which has an associated provisioner. + +### PodSecurityPolicy Requirements + +OpenWhisk's Invokers need elevated security permissions to be able to create the containers that execute the user actions. Therefore, this chart requires a PodSecurityPolicy that permits host access to be bound to the target namespace prior to installation. If the default Pod security policy on your cluster is not restrictive then this step is not needed. If the default is restrictive, please create a new namespace with either a predefined PodSecurityPolicy `ibm-anyuid-hostpath-psp`: + +* Predefined PodSecurityPolicy name: [`ibm-anyuid-hostpath-psp`](https://ibm.biz/cpkspec-psp) + +Alternatively, you can have your cluster administrator setup a custom PodSecurityPolicy for you using the below definition: + +* Custom PodSecurityPolicy definition: + +``` +apiVersion: extensions/v1beta1 +kind: PodSecurityPolicy +metadata: +name: ibm-anyuid-hostpath-psp +
[GitHub] neeraj-laad commented on a change in pull request #367: Helm chart changes
neeraj-laad commented on a change in pull request #367: Helm chart changes URL: https://github.com/apache/incubator-openwhisk-deploy-kube/pull/367#discussion_r235152043 ## File path: helm/openwhisk/README.md ## @@ -0,0 +1,178 @@ +# OpenWhisk + +Apache OpenWhisk is an open source, distributed serverless platform that executes functions in response to events at any scale. + +## Introduction + +The [Apache OpenWhisk](https://openwhisk.apache.org/) serverless platform supports a programming model in which developers write functional logic (called Actions), in any supported programming language, that can be dynamically scheduled and run in response to associated events (via Triggers) from external sources (Feeds) or from HTTP requests. + +This chart will deploy the core OpenWhisk platform to your Kubernetes cluster. In its default configuration, the chart enables runtime support for executing actions written in NodeJS, Python, Swift, Java, PHP, Ruby, Go, and "blackbox" docker containers. The main components of the OpenWhisk platform are a front-end that provides a REST API to the user and the `wsk` CLI, a CouchDB instance that stores user and system data, and a control plane that is responsible for scheduling incoming invocations of user actions onto dedicated Kubernetes worker nodes that have been labeled as "invoker nodes". + +Further documentation of the OpenWhisk system architecture, programming model, tutorials, and sample programs can all be found at on the [Apache OpenWhisk project website](https://openwhisk.apache.org/). + +## Chart Details + +In its default configuration, this chart will create the following Kubernetes resources: +* Externally exposed Services + * nginx -- used to access the deployed OpenWhisk via its REST API. By default, exposed as a NodePort on port 31001. +* Internal Services + * apigateway, controller, couchdb, kafka, nginx, redis, zookeeper +* OpenWhisk control plane Pods: + * DaemonSet: invoker (on all nodes with label `openwhisk-role=invoker`) + * Deployments: apigateway, couchdb, nginx, redis + * SatefulSets: controller, kafka, zookeeper +* Persistent Volume Claims + * couchdb-pvc + * kafka-pvc + * redis-pvc + * zookeeper-pvc-data + * zookeeper-pvc-datalog + +All user interaction with OpenWhisk uses the REST API exposed by the nginx service via its NodePort ingress. + +The chart requires one or more Kubernetes worker nodes to be designated to be used by OpenWhisk's invokers to execute user actions. These nodes are designated by being labeled with `openwhisk-role=invoker` (see below for the `kubectl` command). In its default configuration, the invokers will schedule the containers to execute the user actions on these nodes *without* interacting with the Kubernetes scheduler. + +## Resources Required + +* A Kubernetes cluster with at least 1 worker node with at least 4GB of memory. + +## Prerequisites + +* Kubernetes 1.10 - 1.11.* + +### Image Policy Requirements + +If Container Image Security is enabled, you will not be able to download non-trusted container images. If this is the case, please add the following to the trusted registries so that these container images can be pulled during chart installation: + +* docker.io/openwhisk/* +* docker.io/apache/couchdb:* + +### Persistent Volume Requirements + +This chart requires 5 Persistent Volumes to be created to avoid loss of data. One of the following must be true to satisfy the Persistent Volume requirements for this chart: + +* When the chart is deployed, the value `k8s.persistence.enabled` is set to false to disable usage of Persistent Volumes (for development and test activities). +* The Kubernetes cluster supports Dynamic Volume Provisioning and has a default StorageClass defined with an associated provisioner. +* The Kubernetes cluster supports Dynamic Volume Provisioning and when the chart is deployed, the value `k8s.persistence.defaultStorageClass` is set to a StorageClass which has an associated provisioner. + +### PodSecurityPolicy Requirements + +OpenWhisk's Invokers need elevated security permissions to be able to create the containers that execute the user actions. Therefore, this chart requires a PodSecurityPolicy that permits host access to be bound to the target namespace prior to installation. If the default Pod security policy on your cluster is not restrictive then this step is not needed. If the default is restrictive, please create a new namespace with either a predefined PodSecurityPolicy `ibm-anyuid-hostpath-psp`: + +* Predefined PodSecurityPolicy name: [`ibm-anyuid-hostpath-psp`](https://ibm.biz/cpkspec-psp) + +Alternatively, you can have your cluster administrator setup a custom PodSecurityPolicy for you using the below definition: + +* Custom PodSecurityPolicy definition: + +``` +apiVersion: extensions/v1beta1 +kind: PodSecurityPolicy +metadata: +name: ibm-anyuid-hostpath-psp +
[GitHub] dgrove-oss commented on a change in pull request #367: Helm chart changes
dgrove-oss commented on a change in pull request #367: Helm chart changes URL: https://github.com/apache/incubator-openwhisk-deploy-kube/pull/367#discussion_r235147321 ## File path: helm/openwhisk/README.md ## @@ -0,0 +1,178 @@ +# OpenWhisk + +Apache OpenWhisk is an open source, distributed serverless platform that executes functions in response to events at any scale. + +## Introduction + +The [Apache OpenWhisk](https://openwhisk.apache.org/) serverless platform supports a programming model in which developers write functional logic (called Actions), in any supported programming language, that can be dynamically scheduled and run in response to associated events (via Triggers) from external sources (Feeds) or from HTTP requests. + +This chart will deploy the core OpenWhisk platform to your Kubernetes cluster. In its default configuration, the chart enables runtime support for executing actions written in NodeJS, Python, Swift, Java, PHP, Ruby, Go, and "blackbox" docker containers. The main components of the OpenWhisk platform are a front-end that provides a REST API to the user and the `wsk` CLI, a CouchDB instance that stores user and system data, and a control plane that is responsible for scheduling incoming invocations of user actions onto dedicated Kubernetes worker nodes that have been labeled as "invoker nodes". + +Further documentation of the OpenWhisk system architecture, programming model, tutorials, and sample programs can all be found at on the [Apache OpenWhisk project website](https://openwhisk.apache.org/). + +## Chart Details + +In its default configuration, this chart will create the following Kubernetes resources: +* Externally exposed Services + * nginx -- used to access the deployed OpenWhisk via its REST API. By default, exposed as a NodePort on port 31001. +* Internal Services + * apigateway, controller, couchdb, kafka, nginx, redis, zookeeper +* OpenWhisk control plane Pods: + * DaemonSet: invoker (on all nodes with label `openwhisk-role=invoker`) + * Deployments: apigateway, couchdb, nginx, redis + * SatefulSets: controller, kafka, zookeeper +* Persistent Volume Claims + * couchdb-pvc + * kafka-pvc + * redis-pvc + * zookeeper-pvc-data + * zookeeper-pvc-datalog + +All user interaction with OpenWhisk uses the REST API exposed by the nginx service via its NodePort ingress. + +The chart requires one or more Kubernetes worker nodes to be designated to be used by OpenWhisk's invokers to execute user actions. These nodes are designated by being labeled with `openwhisk-role=invoker` (see below for the `kubectl` command). In its default configuration, the invokers will schedule the containers to execute the user actions on these nodes *without* interacting with the Kubernetes scheduler. + +## Resources Required + +* A Kubernetes cluster with at least 1 worker node with at least 4GB of memory. + +## Prerequisites + +* Kubernetes 1.10 - 1.11.* + +### Image Policy Requirements + +If Container Image Security is enabled, you will not be able to download non-trusted container images. If this is the case, please add the following to the trusted registries so that these container images can be pulled during chart installation: + +* docker.io/openwhisk/* +* docker.io/apache/couchdb:* + +### Persistent Volume Requirements + +This chart requires 5 Persistent Volumes to be created to avoid loss of data. One of the following must be true to satisfy the Persistent Volume requirements for this chart: + +* When the chart is deployed, the value `k8s.persistence.enabled` is set to false to disable usage of Persistent Volumes (for development and test activities). +* The Kubernetes cluster supports Dynamic Volume Provisioning and has a default StorageClass defined with an associated provisioner. +* The Kubernetes cluster supports Dynamic Volume Provisioning and when the chart is deployed, the value `k8s.persistence.defaultStorageClass` is set to a StorageClass which has an associated provisioner. + +### PodSecurityPolicy Requirements + +OpenWhisk's Invokers need elevated security permissions to be able to create the containers that execute the user actions. Therefore, this chart requires a PodSecurityPolicy that permits host access to be bound to the target namespace prior to installation. If the default Pod security policy on your cluster is not restrictive then this step is not needed. If the default is restrictive, please create a new namespace with either a predefined PodSecurityPolicy `ibm-anyuid-hostpath-psp`: + +* Predefined PodSecurityPolicy name: [`ibm-anyuid-hostpath-psp`](https://ibm.biz/cpkspec-psp) + +Alternatively, you can have your cluster administrator setup a custom PodSecurityPolicy for you using the below definition: + +* Custom PodSecurityPolicy definition: + +``` +apiVersion: extensions/v1beta1 +kind: PodSecurityPolicy +metadata: +name: ibm-anyuid-hostpath-psp +
[GitHub] dgrove-oss commented on a change in pull request #367: Helm chart changes
dgrove-oss commented on a change in pull request #367: Helm chart changes URL: https://github.com/apache/incubator-openwhisk-deploy-kube/pull/367#discussion_r235148952 ## File path: helm/openwhisk/values.yaml ## @@ -161,6 +163,7 @@ nginx: httpPort: 80 httpsPort: 443 httpsAdminPort: 8443 + httpsNodePort: 31001 Review comment: This is fine to add as a default, but I need to fix the usage in nginx-svc.yaml to also check for ingress.type being NodePort. I will do a PR for that fix today. Right now we depend on the absence of a value for httpsNodePort when using ingress.type of standard. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] dgrove-oss commented on a change in pull request #367: Helm chart changes
dgrove-oss commented on a change in pull request #367: Helm chart changes URL: https://github.com/apache/incubator-openwhisk-deploy-kube/pull/367#discussion_r235146838 ## File path: helm/openwhisk/README.md ## @@ -0,0 +1,178 @@ +# OpenWhisk + +Apache OpenWhisk is an open source, distributed serverless platform that executes functions in response to events at any scale. + +## Introduction + +The [Apache OpenWhisk](https://openwhisk.apache.org/) serverless platform supports a programming model in which developers write functional logic (called Actions), in any supported programming language, that can be dynamically scheduled and run in response to associated events (via Triggers) from external sources (Feeds) or from HTTP requests. + +This chart will deploy the core OpenWhisk platform to your Kubernetes cluster. In its default configuration, the chart enables runtime support for executing actions written in NodeJS, Python, Swift, Java, PHP, Ruby, Go, and "blackbox" docker containers. The main components of the OpenWhisk platform are a front-end that provides a REST API to the user and the `wsk` CLI, a CouchDB instance that stores user and system data, and a control plane that is responsible for scheduling incoming invocations of user actions onto dedicated Kubernetes worker nodes that have been labeled as "invoker nodes". + +Further documentation of the OpenWhisk system architecture, programming model, tutorials, and sample programs can all be found at on the [Apache OpenWhisk project website](https://openwhisk.apache.org/). + +## Chart Details + +In its default configuration, this chart will create the following Kubernetes resources: +* Externally exposed Services + * nginx -- used to access the deployed OpenWhisk via its REST API. By default, exposed as a NodePort on port 31001. +* Internal Services + * apigateway, controller, couchdb, kafka, nginx, redis, zookeeper +* OpenWhisk control plane Pods: + * DaemonSet: invoker (on all nodes with label `openwhisk-role=invoker`) + * Deployments: apigateway, couchdb, nginx, redis + * SatefulSets: controller, kafka, zookeeper +* Persistent Volume Claims + * couchdb-pvc + * kafka-pvc + * redis-pvc + * zookeeper-pvc-data + * zookeeper-pvc-datalog + +All user interaction with OpenWhisk uses the REST API exposed by the nginx service via its NodePort ingress. + +The chart requires one or more Kubernetes worker nodes to be designated to be used by OpenWhisk's invokers to execute user actions. These nodes are designated by being labeled with `openwhisk-role=invoker` (see below for the `kubectl` command). In its default configuration, the invokers will schedule the containers to execute the user actions on these nodes *without* interacting with the Kubernetes scheduler. + +## Resources Required + +* A Kubernetes cluster with at least 1 worker node with at least 4GB of memory. + +## Prerequisites + +* Kubernetes 1.10 - 1.11.* + +### Image Policy Requirements + +If Container Image Security is enabled, you will not be able to download non-trusted container images. If this is the case, please add the following to the trusted registries so that these container images can be pulled during chart installation: + +* docker.io/openwhisk/* +* docker.io/apache/couchdb:* + +### Persistent Volume Requirements + +This chart requires 5 Persistent Volumes to be created to avoid loss of data. One of the following must be true to satisfy the Persistent Volume requirements for this chart: + +* When the chart is deployed, the value `k8s.persistence.enabled` is set to false to disable usage of Persistent Volumes (for development and test activities). +* The Kubernetes cluster supports Dynamic Volume Provisioning and has a default StorageClass defined with an associated provisioner. +* The Kubernetes cluster supports Dynamic Volume Provisioning and when the chart is deployed, the value `k8s.persistence.defaultStorageClass` is set to a StorageClass which has an associated provisioner. + +### PodSecurityPolicy Requirements + +OpenWhisk's Invokers need elevated security permissions to be able to create the containers that execute the user actions. Therefore, this chart requires a PodSecurityPolicy that permits host access to be bound to the target namespace prior to installation. If the default Pod security policy on your cluster is not restrictive then this step is not needed. If the default is restrictive, please create a new namespace with either a predefined PodSecurityPolicy `ibm-anyuid-hostpath-psp`: + +* Predefined PodSecurityPolicy name: [`ibm-anyuid-hostpath-psp`](https://ibm.biz/cpkspec-psp) + +Alternatively, you can have your cluster administrator setup a custom PodSecurityPolicy for you using the below definition: + +* Custom PodSecurityPolicy definition: + +``` +apiVersion: extensions/v1beta1 +kind: PodSecurityPolicy +metadata: +name: ibm-anyuid-hostpath-psp +
[GitHub] kpavel opened a new pull request #3886: Proposing Lean OpenWhisk
kpavel opened a new pull request #3886: Proposing Lean OpenWhisk URL: https://github.com/apache/incubator-openwhisk/pull/3886 The proposition is to get rid of Kafka, have controller and invoker compiled together into a "lean" controller-invoker (have a Gradle project for that) with controller calling the invoker's method directly via an in-memory object (a queue, which is also loaded via SPI) via a new pluggable load balancer that is selected via SPI using configuration file property setting. For more information here is a [blog](https://medium.com/@davidbr_9022/lean-openwhisk-open-source-faas-for-edge-computing-fb823c6bbb9b) As well, briefly discussed it in this [thread](https://lists.apache.org/thread.html/516efc0ed9afb09fe52e30d10eb9fe5091af91df53a46c07e1701122@%3Cdev.openwhisk.apache.org%3E) ## Description The goal is to avoid changes in the core components as much as possible. Rather this PR adds a few components. The main additions are as follows: - LeanBalancer SPI: provides LoadBalancer to communicate with Invoker directly without Kafka in the middle (Invoker does not exist as a separate entity; it is built together with Controller) - LeanMessagingProvider SPI: provides Producer/Consumer implementers to communicate via in-memory queue instead of Kafka. - Ansible deployment: added controller-lean.yml and other files required for the Ansible deployment. Since lean controller is a combination of the controller + invoker projects, its ansible deploy.yml requires most of the values from both. Currently this problem is resolved by partially replicating variables from the regular invoker's deploy.yml to the tasks/invoker-lean.yml. Probably it would be better to avoid this duplication by having everything we need for lean in the regular deploy.yml. - Dockerfile: to build Lean controller docker image, which is a merge of the regular invoker + controller Dockerfile - Vagrantfile: a small change to make Lean available using environment variable ## My changes affect the following components - [ ] API - [x] Controller - [ ] Message Bus (e.g., Kafka) - [x] Loadbalancer - [x] Invoker - [ ] Intrinsic actions (e.g., sequences, conductors) - [ ] Data stores (e.g., CouchDB) - [ ] Tests - [x] Deployment - [ ] CLI - [ ] General tooling - [x] Documentation ## Types of changes - [ ] Bug fix (generally a non-breaking change which closes an issue). - [x] Enhancement or new feature (adds new functionality). - [ ] Breaking change (a bug fix or enhancement which changes existing behavior). ## Checklist: - [x] I signed an [Apache CLA](https://github.com/apache/incubator-openwhisk/blob/master/CONTRIBUTING.md). - [x] I reviewed the [style guides](https://github.com/apache/incubator-openwhisk/wiki/Contributing:-Git-guidelines#code-readiness) and followed the recommendations (Travis CI will check :). - [ ] I added tests to cover my changes. - [x] My changes require further changes to the documentation. - [x] I updated the documentation where necessary. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] kpavel closed pull request #3886: Proposing Lean OpenWhisk
kpavel closed pull request #3886: Proposing Lean OpenWhisk URL: https://github.com/apache/incubator-openwhisk/pull/3886 This is a PR merged from a forked repository. As GitHub hides the original diff on merge, it is displayed below for the sake of provenance: As this is a foreign pull request (from a fork), the diff is supplied below (as it won't show otherwise due to GitHub magic): diff --git a/.travis.yml b/.travis.yml index f9cd86719b..e9099e2776 100644 --- a/.travis.yml +++ b/.travis.yml @@ -93,3 +93,26 @@ jobs: - OPENWHISK_HOST="172.17.0.1" USERS="1" REQUESTS_PER_SEC="1" ./gradlew gatlingRun-org.apache.openwhisk.ColdBlockingInvokeSimulation - ./tools/travis/checkAndUploadLogs.sh perf name: "Performance Tests" +- script: + # Same System Tests suite (with one KafkaConnectorTest excluded), but when OW deployment is Lean (without Kafka) + - ./tools/travis/runLeanSystemTests.sh + - ./tools/travis/checkAndUploadLogs.sh system + name: "Lean System Tests" +- script: +# Same wrk-performance test suite, but when OW deployment is Lean (without Kafka) +- ./tests/performance/preparation/deploy-lean.sh +- TERM=dumb ./tests/performance/wrk_tests/latency.sh "https://172.17.0.1:10001; "$(cat ansible/files/auth.guest)" ./tests/performance/preparation/actions/noop.js 2m +- TERM=dumb ./tests/performance/wrk_tests/latency.sh "https://172.17.0.1:10001; "$(cat ansible/files/auth.guest)" ./tests/performance/preparation/actions/async.js 2m +- TERM=dumb ./tests/performance/wrk_tests/throughput.sh "https://172.17.0.1:10001; "$(cat ansible/files/auth.guest)" ./tests/performance/preparation/actions/noop.js 4 1 2 2m +- TERM=dumb ./tests/performance/wrk_tests/throughput.sh "https://172.17.0.1:10001; "$(cat ansible/files/auth.guest)" ./tests/performance/preparation/actions/async.js 4 1 2 2m +- TERM=dumb ./tests/performance/wrk_tests/throughput.sh "https://172.17.0.1:10001; "$(cat ansible/files/auth.guest)" ./tests/performance/preparation/actions/noop.js 100 110 2 2m +- TERM=dumb ./tests/performance/wrk_tests/throughput.sh "https://172.17.0.1:10001; "$(cat ansible/files/auth.guest)" ./tests/performance/preparation/actions/async.js 100 110 2 2m +- OPENWHISK_HOST="172.17.0.1" CONNECTIONS="100" REQUESTS_PER_SEC="1" ./gradlew gatlingRun-org.apache.openwhisk.ApiV1Simulation +- OPENWHISK_HOST="172.17.0.1" MEAN_RESPONSE_TIME="1000" API_KEY="$(cat ansible/files/auth.guest)" EXCLUDED_KINDS="python:default,java:default,swift:default" PAUSE_BETWEEN_INVOKES="100" ./gradlew gatlingRun-org.apache.openwhisk.LatencySimulation +- OPENWHISK_HOST="172.17.0.1" API_KEY="$(cat ansible/files/auth.guest)" CONNECTIONS="100" REQUESTS_PER_SEC="1" ./gradlew gatlingRun-org.apache.openwhisk.BlockingInvokeOneActionSimulation +- OPENWHISK_HOST="172.17.0.1" API_KEY="$(cat ansible/files/auth.guest)" CONNECTIONS="100" REQUESTS_PER_SEC="1" ASYNC="true" ./gradlew gatlingRun-org.apache.openwhisk.BlockingInvokeOneActionSimulation +# The following configuration does not make much sense. But we do not have enough users. But it's good to verify, that the test is still working. +- OPENWHISK_HOST="172.17.0.1" USERS="1" REQUESTS_PER_SEC="1" ./gradlew gatlingRun-org.apache.openwhisk.ColdBlockingInvokeSimulation +- ./tools/travis/checkAndUploadLogs.sh perf + name: "Lean Performance Tests" + diff --git a/README.md b/README.md index a97ddadb7d..76f8cc6605 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,7 @@ OpenWhisk is a cloud-first distributed event-based programming service. It provi * [Native development](#native-development) (Mac and Ubuntu) * [Kubernetes](#kubernetes-setup) * [Vagrant](#vagrant-setup) +* [Lean](#lean-setup) * [Learn concepts and commands](#learn-concepts-and-commands) * [Issues](#issues) * [Slack](#slack) @@ -96,6 +97,45 @@ If you plan to make contributions to OpenWhisk, we recommend either a Mac or Ubu * [Setup Mac for OpenWhisk](tools/macos/README.md) * [Setup Ubuntu for OpenWhisk](tools/ubuntu-setup/README.md) +### Lean Setup +To have a lean setup (no Kafka, Zookeeper and no Invokers as separate entities), consider the following options. + +**Docker Compose** +``` +git clone -b lean https://github.com/kpavel/incubator-openwhisk-devtools.git +cd incubator-openwhisk-devtools/docker-compose +make quick-start +``` + +For more detailed instructions or if you encounter problems see the [OpenWhisk-dev tools](https://github.com/kpavel/incubator-openwhisk-devtools/tree/lean/docker-compose/README.md) project. + +**Native** +Follow instructions in the [Native development](#native-development) document until the [Deploying Using CouchDB](ansible/README.md#deploying-using-cloudant) step. At this point, replace: +``` +ansible-playbook -i environments/ openwhisk.yml +``` +by: +``` +ansible-playbook -i environments/ openwhisk-lean.yml
[GitHub] mdeuser commented on a change in pull request #383: enable use of concurrency action limits via cli
mdeuser commented on a change in pull request #383: enable use of concurrency action limits via cli URL: https://github.com/apache/incubator-openwhisk-cli/pull/383#discussion_r235136981 ## File path: tests/src/test/scala/org/apache/openwhisk/core/cli/test/WskCliBasicUsageTests.scala ## @@ -390,14 +391,16 @@ class WskCliBasicUsageTests extends TestHelpers with WskTestHelpers { val memoryLimit = 512 MB val logLimit = 1 MB val timeLimit = 60 seconds + val concurrencyLimit = 500 assetHelper.withCleaner(wsk.action, name) { (action, _) => action.create( name, Some(TestUtils.getTestActionFilename("helloAsync.js")), memory = Some(memoryLimit), timeout = Some(timeLimit), - logsize = Some(logLimit)) + logsize = Some(logLimit), + concurrency = Some(concurrencyLimit)) Review comment: also need to add the expected concurrency value here..? https://github.com/apache/incubator-openwhisk-cli/blob/0640ecafb67b37f489665c8d46ab054b94a8a763/tests/src/test/scala/org/apache/openwhisk/core/cli/test/WskCliBasicUsageTests.scala#L414 This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] rabbah commented on a change in pull request #4115: Don't react on Completion message of blocking requests.
rabbah commented on a change in pull request #4115: Don't react on Completion message of blocking requests. URL: https://github.com/apache/incubator-openwhisk/pull/4115#discussion_r235121779 ## File path: core/invoker/src/main/scala/org/apache/openwhisk/core/containerpool/ContainerProxy.scala ## @@ -530,8 +530,16 @@ class ContainerProxy( activationWithLogs .map(_.fold(_.activation, identity)) .foreach { activation => -// Sending the completionMessage to the controller asynchronously. -sendActiveAck(tid, activation, job.msg.blocking, job.msg.rootControllerIndex, job.msg.user.namespace.uuid, true) +// Sending the completionMessage to the controller asynchronously. But not before result message is sent. Review comment: maybe im confused by the view on github - is the active ack sent twice for blocking invokes? This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] dgrove-oss opened a new pull request #239: composer 0.9.0 release
dgrove-oss opened a new pull request #239: composer 0.9.0 release URL: https://github.com/apache/incubator-openwhisk-release/pull/239 This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] dgrove-oss closed pull request #9: Fix openwhisk-composer module resolution in compose command
dgrove-oss closed pull request #9: Fix openwhisk-composer module resolution in compose command URL: https://github.com/apache/incubator-openwhisk-composer/pull/9 This is a PR merged from a forked repository. As GitHub hides the original diff on merge, it is displayed below for the sake of provenance: As this is a foreign pull request (from a fork), the diff is supplied below (as it won't show otherwise due to GitHub magic): diff --git a/bin/compose.js b/bin/compose.js index f0aa334..b581700 100755 --- a/bin/compose.js +++ b/bin/compose.js @@ -39,7 +39,7 @@ Module._resolveFilename = function (request, parent) { try { return _resolveFilename(request, parent) } catch (error) { - return require.resolve(request.replace(request.startsWith(json.name + '/') ? json.name : json.name.substring(0, json.name.indexOf('/')), '..')) + return require.resolve(request.replace(json.name, '..')) } } else { return _resolveFilename(request, parent) This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] Juice10 commented on a change in pull request #60: Some basic changes to README to better conform to runtime template.
Juice10 commented on a change in pull request #60: Some basic changes to README to better conform to runtime template. URL: https://github.com/apache/incubator-openwhisk-runtime-go/pull/60#discussion_r235115317 ## File path: README.md ## @@ -16,21 +16,32 @@ # limitations under the License. # --> -# Apache OpenWhisk Runtime for Go (and Generic executables) +# Apache OpenWhisk Runtimes for Go [![Build Status](https://travis-ci.org/apache/incubator-openwhisk-runtime-go.svg?branch=master)](https://travis-ci.org/apache/incubator-openwhisk-runtime-go) [![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](http://www.apache.org/licenses/LICENSE-2.0) [![Join Slack](https://img.shields.io/badge/join-slack-9B69A0.svg)](http://slack.openwhisk.org/) -This is an OpenWhisk runtime for Golang and Generic executables. +This repsotiroy containst both the OpenWhisk runtime for Golang Actions, as well as a runtime for Generic executables. Review comment: typo: `repsotiroy` should be `repository` This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] tardieu opened a new pull request #9: Fix openwhisk-composer module resolution in compose command
tardieu opened a new pull request #9: Fix openwhisk-composer module resolution in compose command URL: https://github.com/apache/incubator-openwhisk-composer/pull/9 The compose command now resolves the `openwhisk-composer` module to the parent folder if not found in the search path. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] neeraj-laad opened a new pull request #367: Helm chart changes
neeraj-laad opened a new pull request #367: Helm chart changes URL: https://github.com/apache/incubator-openwhisk-deploy-kube/pull/367 Added readme for helm catalog Updated chart decrtiption for helm catalog updated notes.txt to include instrcutsion on testing the release included NodePort as default ingress This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] dgrove-oss commented on issue #104: "wsk api list" is not working
dgrove-oss commented on issue #104: "wsk api list" is not working URL: https://github.com/apache/incubator-openwhisk-deploy-kube/issues/104#issuecomment-440340820 It looks like the job (or jobs depending on how recently you cloned the repo) that install the openwhisk catalog and the actions that support apigateway into the /whisk.system namespace either failed or did not run. See if you can find the logs/status for all the Jobs in your version of the Helm chart. If the install jobs ran correctly, when you do `wsk -i packages list /whisk.system` you should see a listing of some standard packages like: ``` daves-mbp:incubator-openwhisk-deploy-kube dgrove$ wsk -i --auth `kubectl -n openwhisk get secret whisk.auth -o jsonpath='{.data.system}' | base64 --decode` package list packages /whisk.system/watson-speechToText shared /whisk.system/github shared /whisk.system/websocketshared /whisk.system/samples shared /whisk.system/slackshared /whisk.system/watson-textToSpeech shared /whisk.system/weather shared /whisk.system/utilsshared /whisk.system/combinators shared /whisk.system/apimgmt private ``` and you should be able to list the three actions in the `/whisk.system/apimgmt` package. ``` daves-mbp:incubator-openwhisk-deploy-kube dgrove$ wsk -i --auth `kubectl -n openwhisk get secret whisk.auth -o jsonpath='{.data.system}' | base64 --decode` action list /whisk.system/apimgmt actions /whisk.system/apimgmt/deleteApi private nodejs:6 /whisk.system/apimgmt/createApi private nodejs:6 /whisk.system/apimgmt/getApi private nodejs:6 ``` This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] xgenvn opened a new issue #177: CouchDB shows error of database not exist after make restart
xgenvn opened a new issue #177: CouchDB shows error of database not exist after make restart URL: https://github.com/apache/incubator-openwhisk-devtools/issues/177 Hi, Is it by design we have to re-init couchdb right after every restart? I'm using PhotonOS VM for testing. Everything is working fine unless I try using `make stop` or `make restart`. The issue I found is related to CouchDB with the logs `database not exists`. `make init-couchdb` solve the issue, but then I have to deploy my service again (using serverless). This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] dgrove-oss commented on issue #238: add incubator-openwhisk-composer to big table of repos
dgrove-oss commented on issue #238: add incubator-openwhisk-composer to big table of repos URL: https://github.com/apache/incubator-openwhisk-release/pull/238#issuecomment-440328813 @mrutkows @houshengbo -- travis CI still appears to be broken for the openwhisk-release repository. Could you please investigate and fix? I would like to start working on the openwhisk-composer release and I think if travis is not working, I'm probably blocked? This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] csantanapr closed pull request #184: Add support for IAM based Cloudant DB instances
csantanapr closed pull request #184: Add support for IAM based Cloudant DB instances URL: https://github.com/apache/incubator-openwhisk-package-cloudant/pull/184 This is a PR merged from a forked repository. As GitHub hides the original diff on merge, it is displayed below for the sake of provenance: As this is a foreign pull request (from a fork), the diff is supplied below (as it won't show otherwise due to GitHub magic): diff --git a/.gitignore b/.gitignore index 4891796..009fe45 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ actions/event-actions/*.zip actions/event-actions/package.json .idea *.iml +package-lock.json # Eclipse bin/ diff --git a/Dockerfile b/Dockerfile index 2df3aac..e5e8a21 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,17 +1,4 @@ -FROM ubuntu:14.04 - -ENV DEBIAN_FRONTEND noninteractive - -# Initial update and some basics. -# This odd double update seems necessary to get curl to download without 404 errors. -RUN apt-get update --fix-missing && \ - apt-get install -y wget && \ - apt-get update && \ - apt-get install -y curl && \ - apt-get update && \ - apt-get remove -y nodejs && \ - curl -sL https://deb.nodesource.com/setup_8.x | bash - && \ - apt-get install -y nodejs +FROM node:8.12.0 # only package.json ADD package.json / @@ -23,4 +10,4 @@ ADD provider/. /cloudantTrigger/ EXPOSE 8080 # Run the app -CMD ["/bin/bash", "-c", "node /cloudantTrigger/app.js >> /logs/cloudantTrigger_logs.log 2>&1"] +CMD ["/bin/bash", "-c", "node /cloudantTrigger/app.js"] diff --git a/actions/event-actions/changesWebAction.js b/actions/event-actions/changesWebAction.js index af2b0e8..1e171ea 100644 --- a/actions/event-actions/changesWebAction.js +++ b/actions/event-actions/changesWebAction.js @@ -29,11 +29,10 @@ function main(params) { if (!params.host) { return common.sendError(400, 'cloudant trigger feed: missing host parameter'); } -if (!params.username) { -return common.sendError(400, 'cloudant trigger feed: missing username parameter'); -} -if (!params.password) { -return common.sendError(400, 'cloudant trigger feed: missing password parameter'); +if (!params.iamApiKey) { +if (!params.username || !params.password) { +return common.sendError(400, 'cloudant trigger feed: Must specify parameter/s of iamApiKey or username/password'); +} } var query_params; @@ -56,30 +55,34 @@ function main(params) { return common.sendError(400, 'The query_params parameter is only allowed if the filter parameter is defined'); } -var newTrigger = { -id: triggerID, -host: params.host, -port: params.port, -protocol: params.protocol || 'https', -dbname: params.dbname, -user: params.username, -pass: params.password, -apikey: triggerData.apikey, -since: params.since, -maxTriggers: params.maxTriggers || -1, -filter: params.filter, -query_params: query_params, -status: { -'active': true, -'dateChanged': Date.now() -}, -additionalData: triggerData.additionalData -}; - return new Promise(function (resolve, reject) { +var newTrigger; + common.verifyTriggerAuth(triggerData, false) .then(() => { db = new Database(params.DB_URL, params.DB_NAME); + +newTrigger = { +id: triggerID, +host: params.host, +port: params.port, +protocol: params.protocol || 'https', +dbname: params.dbname, +user: params.username, +pass: params.password, +apikey: triggerData.apikey, +since: params.since, +maxTriggers: params.maxTriggers || -1, +filter: params.filter, +query_params: query_params, +status: { +'active': true, +'dateChanged': Date.now() +}, +additionalData: triggerData.additionalData, +iamApiKey: params.iamApiKey, +iamUrl: params.iamUrl || 'https://iam.bluemix.net/identity/token' +}; return verifyUserDB(newTrigger); }) .then(() => { @@ -124,6 +127,8 @@ function main(params) { since: doc.since, filter: doc.filter, query_params: doc.query_params, +iamApiKey: doc.iamApiKey, +iamUrl: doc.iamUrl }, status: {
[GitHub] KeonHee commented on issue #4128: Delete unnecessary code comments
KeonHee commented on issue #4128: Delete unnecessary code comments URL: https://github.com/apache/incubator-openwhisk/pull/4128#issuecomment-440316330 I don't understand why this error occurs. How do I run the build test again? https://travis-ci.org/apache/incubator-openwhisk/jobs/457479476#L6507 This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] jasonpet opened a new pull request #184: Add support for IAM based Cloudant DB instances
jasonpet opened a new pull request #184: Add support for IAM based Cloudant DB instances URL: https://github.com/apache/incubator-openwhisk-package-cloudant/pull/184 With this PR users can now listen to changes on Cloudant accounts that are IAM only enabled (the recommended approach). See https://console.bluemix.net/docs/services/Cloudant/guides/iam.html#ibm-cloud-identity-and-access-management for details. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] mhenke1 commented on issue #4119: Fix test failures in case min and max concurrency settings are identical
mhenke1 commented on issue #4119: Fix test failures in case min and max concurrency settings are identical URL: https://github.com/apache/incubator-openwhisk/pull/4119#issuecomment-440301761 superseded by https://github.com/apache/incubator-openwhisk/pull/4125 This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] codecov-io edited a comment on issue #4126: Fix netty leak in CosmosDBArtifactStore`
codecov-io edited a comment on issue #4126: Fix netty leak in CosmosDBArtifactStore` URL: https://github.com/apache/incubator-openwhisk/pull/4126#issuecomment-440267651 # [Codecov](https://codecov.io/gh/apache/incubator-openwhisk/pull/4126?src=pr=h1) Report > Merging [#4126](https://codecov.io/gh/apache/incubator-openwhisk/pull/4126?src=pr=desc) into [master](https://codecov.io/gh/apache/incubator-openwhisk/commit/f35e23ae19b87bf6c3d27f579ca42a4da8ebb2b0?src=pr=desc) will **decrease** coverage by `4.84%`. > The diff coverage is `0%`. [![Impacted file tree graph](https://codecov.io/gh/apache/incubator-openwhisk/pull/4126/graphs/tree.svg?width=650=l0YmsiSAso=150=pr)](https://codecov.io/gh/apache/incubator-openwhisk/pull/4126?src=pr=tree) ```diff @@Coverage Diff @@ ## master#4126 +/- ## == - Coverage 86.13% 81.28% -4.85% == Files 151 151 Lines7263 7263 Branches 466 468 +2 == - Hits 6256 5904 -352 - Misses 1007 1359 +352 ``` | [Impacted Files](https://codecov.io/gh/apache/incubator-openwhisk/pull/4126?src=pr=tree) | Coverage Δ | | |---|---|---| | [...core/database/cosmosdb/CosmosDBArtifactStore.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4126/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvcmUvZGF0YWJhc2UvY29zbW9zZGIvQ29zbW9zREJBcnRpZmFjdFN0b3JlLnNjYWxh) | `0% <0%> (-95.54%)` | :arrow_down: | | [...core/database/cosmosdb/RxObservableImplicits.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4126/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvcmUvZGF0YWJhc2UvY29zbW9zZGIvUnhPYnNlcnZhYmxlSW1wbGljaXRzLnNjYWxh) | `0% <0%> (-100%)` | :arrow_down: | | [...sk/core/database/cosmosdb/CosmosDBViewMapper.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4126/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvcmUvZGF0YWJhc2UvY29zbW9zZGIvQ29zbW9zREJWaWV3TWFwcGVyLnNjYWxh) | `0% <0%> (-92.6%)` | :arrow_down: | | [...whisk/core/database/cosmosdb/CosmosDBSupport.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4126/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvcmUvZGF0YWJhc2UvY29zbW9zZGIvQ29zbW9zREJTdXBwb3J0LnNjYWxh) | `0% <0%> (-83.34%)` | :arrow_down: | | [...abase/cosmosdb/CosmosDBArtifactStoreProvider.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4126/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvcmUvZGF0YWJhc2UvY29zbW9zZGIvQ29zbW9zREJBcnRpZmFjdFN0b3JlUHJvdmlkZXIuc2NhbGE=) | `0% <0%> (-62.5%)` | :arrow_down: | | [...penwhisk/core/database/cosmosdb/CosmosDBUtil.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4126/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvcmUvZGF0YWJhc2UvY29zbW9zZGIvQ29zbW9zREJVdGlsLnNjYWxh) | `92% <0%> (-4%)` | :arrow_down: | | [...rg/apache/openwhisk/common/ForcibleSemaphore.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4126/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvbW1vbi9Gb3JjaWJsZVNlbWFwaG9yZS5zY2FsYQ==) | `88.46% <0%> (-3.85%)` | :arrow_down: | | [...che/openwhisk/core/database/CouchDbRestStore.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4126/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvcmUvZGF0YWJhc2UvQ291Y2hEYlJlc3RTdG9yZS5zY2FsYQ==) | `73.73% <0%> (+0.5%)` | :arrow_up: | | [...pache/openwhisk/core/invoker/InvokerReactive.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4126/diff?src=pr=tree#diff-Y29yZS9pbnZva2VyL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvcmUvaW52b2tlci9JbnZva2VyUmVhY3RpdmUuc2NhbGE=) | `82.24% <0%> (+0.93%)` | :arrow_up: | -- [Continue to review full report at Codecov](https://codecov.io/gh/apache/incubator-openwhisk/pull/4126?src=pr=continue). > **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta) > `Δ = absolute (impact)`, `ø = not affected`, `? = missing data` > Powered by [Codecov](https://codecov.io/gh/apache/incubator-openwhisk/pull/4126?src=pr=footer). Last update [f35e23a...21348f8](https://codecov.io/gh/apache/incubator-openwhisk/pull/4126?src=pr=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments). This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the
[GitHub] KeonHee opened a new pull request #4128: Delete unnecessary code comments
KeonHee opened a new pull request #4128: Delete unnecessary code comments URL: https://github.com/apache/incubator-openwhisk/pull/4128 ## Description It looks like a code comment that accidentally entered. so I erased it and put up pr. ## My changes affect the following components - [ ] API - [x] Controller - [ ] Message Bus (e.g., Kafka) - [ ] Loadbalancer - [ ] Invoker - [ ] Intrinsic actions (e.g., sequences, conductors) - [ ] Data stores (e.g., CouchDB) - [ ] Tests - [ ] Deployment - [ ] CLI - [ ] General tooling - [ ] Documentation ## Types of changes - [x] Bug fix (generally a non-breaking change which closes an issue). - [ ] Enhancement or new feature (adds new functionality). - [ ] Breaking change (a bug fix or enhancement which changes existing behavior). ## Checklist: - [x] I signed an [Apache CLA](https://github.com/apache/incubator-openwhisk/blob/master/CONTRIBUTING.md). (`Geonhui Kim`) - [x] I reviewed the [style guides](https://github.com/apache/incubator-openwhisk/wiki/Contributing:-Git-guidelines#code-readiness) and followed the recommendations (Travis CI will check :). - [ ] I added tests to cover my changes. - [ ] My changes require further changes to the documentation. - [ ] I updated the documentation where necessary. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] mhenke1 closed pull request #4127: WIP- Test will be deleted
mhenke1 closed pull request #4127: WIP- Test will be deleted URL: https://github.com/apache/incubator-openwhisk/pull/4127 This is a PR merged from a forked repository. As GitHub hides the original diff on merge, it is displayed below for the sake of provenance: As this is a foreign pull request (from a fork), the diff is supplied below (as it won't show otherwise due to GitHub magic): diff --git a/ansible/environments/local/group_vars/all b/ansible/environments/local/group_vars/all index 4a2d8e0d21..65e0a5ae45 100755 --- a/ansible/environments/local/group_vars/all +++ b/ansible/environments/local/group_vars/all @@ -30,7 +30,3 @@ kafka_topics_invoker_retentionBytes: 104857600 kafka_topics_invoker_retentionMS: 30 env_hosts_dir: "{{ playbook_dir }}/environments/local" - -container_pool_akka_client: true -runtimes_enable_concurrency: true -limit_action_concurrency_max: 500 diff --git a/ansible/templates/whisk.properties.j2 b/ansible/templates/whisk.properties.j2 index 6b79896653..e946008c37 100644 --- a/ansible/templates/whisk.properties.j2 +++ b/ansible/templates/whisk.properties.j2 @@ -32,6 +32,8 @@ whisk.api.host.name={{ whisk_api_host_name | default(groups['edge'] | first) }} whisk.api.localhost.name={{ whisk_api_localhost_name | default(whisk_api_host_name) | default(whisk_api_localhost_name_default) }} whisk.api.vanity.subdomain.parts=1 +whisk.action.concurrency={{runtimes_enable_concurrency | default(false)}} + runtimes.manifest={{ runtimesManifest | to_json }} limits.actions.invokes.perMinute={{ limits.invocationsPerMinute }} diff --git a/tests/dat/actions/concurrent.js b/tests/dat/actions/concurrent.js index 786efa2d65..c95a59b79e 100644 --- a/tests/dat/actions/concurrent.js +++ b/tests/dat/actions/concurrent.js @@ -36,4 +36,4 @@ function checkRequests(args, resolve, reject, elapsed) { }, interval); } } -} \ No newline at end of file +} diff --git a/tests/src/test/scala/org/apache/openwhisk/core/containerpool/test/ContainerPoolTests.scala b/tests/src/test/scala/org/apache/openwhisk/core/containerpool/test/ContainerPoolTests.scala index 3ef685cb38..5e65e4c08e 100644 --- a/tests/src/test/scala/org/apache/openwhisk/core/containerpool/test/ContainerPoolTests.scala +++ b/tests/src/test/scala/org/apache/openwhisk/core/containerpool/test/ContainerPoolTests.scala @@ -21,7 +21,6 @@ import java.time.Instant import scala.collection.mutable import scala.concurrent.duration._ - import org.junit.runner.RunWith import org.scalamock.scalatest.MockFactory import org.scalatest.BeforeAndAfterAll @@ -29,12 +28,12 @@ import org.scalatest.FlatSpec import org.scalatest.FlatSpecLike import org.scalatest.Matchers import org.scalatest.junit.JUnitRunner - import akka.actor.ActorRefFactory import akka.actor.ActorSystem import akka.testkit.ImplicitSender import akka.testkit.TestKit import akka.testkit.TestProbe +import common.WhiskProperties import org.apache.openwhisk.common.TransactionId import org.apache.openwhisk.core.connector.ActivationMessage import org.apache.openwhisk.core.containerpool._ @@ -571,7 +570,8 @@ class ContainerPoolObjectTests extends FlatSpec with Matchers with MockFactory { } it should "not use a container when active activation count >= maxconcurrent" in { -val maxConcurrent = 25 +val concurrencyEnabled = Option(WhiskProperties.getProperty("whisk.action.concurrency")).exists(_.toBoolean) +val maxConcurrent = if (concurrencyEnabled) 25 else 1 val data = warmedData( active = maxConcurrent, diff --git a/tests/src/test/scala/org/apache/openwhisk/core/containerpool/test/ContainerProxyTests.scala b/tests/src/test/scala/org/apache/openwhisk/core/containerpool/test/ContainerProxyTests.scala index 9ce7d09e9e..d61cb84c38 100644 --- a/tests/src/test/scala/org/apache/openwhisk/core/containerpool/test/ContainerProxyTests.scala +++ b/tests/src/test/scala/org/apache/openwhisk/core/containerpool/test/ContainerProxyTests.scala @@ -18,14 +18,15 @@ package org.apache.openwhisk.core.containerpool.test import java.time.Instant + import akka.actor.FSM.{CurrentState, SubscribeTransitionCallBack, Transition} import akka.actor.{ActorRef, ActorSystem, FSM} import akka.stream.scaladsl.Source import akka.testkit.{ImplicitSender, TestKit} import akka.util.ByteString -import common.SynchronizedLoggedFunction -import common.{LoggedFunction, StreamLogging} +import common.{LoggedFunction, StreamLogging, SynchronizedLoggedFunction, WhiskProperties} import java.util.concurrent.atomic.AtomicInteger + import org.junit.runner.RunWith import org.scalatest.junit.JUnitRunner import org.scalatest.{BeforeAndAfterAll, FlatSpecLike, Matchers} @@ -69,11 +70,13 @@ class ContainerProxyTests val invocationNamespace = EntityName("invocationSpace") val action = ExecutableWhiskAction(EntityPath("actionSpace"), EntityName("actionName"), exec) + val concurrencyEnabled =
[GitHub] mhenke1 commented on issue #4125: System test succeeds when concurrency is not enabled
mhenke1 commented on issue #4125: System test succeeds when concurrency is not enabled URL: https://github.com/apache/incubator-openwhisk/pull/4125#issuecomment-440273733 The non concurrent case got tested with https://travis-ci.org/apache/incubator-openwhisk/builds/457432688 This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] codecov-io commented on issue #4126: Fix netty leak in CosmosDBArtifactStore`
codecov-io commented on issue #4126: Fix netty leak in CosmosDBArtifactStore` URL: https://github.com/apache/incubator-openwhisk/pull/4126#issuecomment-440267651 # [Codecov](https://codecov.io/gh/apache/incubator-openwhisk/pull/4126?src=pr=h1) Report > Merging [#4126](https://codecov.io/gh/apache/incubator-openwhisk/pull/4126?src=pr=desc) into [master](https://codecov.io/gh/apache/incubator-openwhisk/commit/f35e23ae19b87bf6c3d27f579ca42a4da8ebb2b0?src=pr=desc) will **decrease** coverage by `3.34%`. > The diff coverage is `0%`. [![Impacted file tree graph](https://codecov.io/gh/apache/incubator-openwhisk/pull/4126/graphs/tree.svg?width=650=l0YmsiSAso=150=pr)](https://codecov.io/gh/apache/incubator-openwhisk/pull/4126?src=pr=tree) ```diff @@Coverage Diff @@ ## master#4126 +/- ## == - Coverage 84.63% 81.28% -3.35% == Files 151 151 Lines7263 7263 Branches 466 468 +2 == - Hits 6147 5904 -243 - Misses 1116 1359 +243 ``` | [Impacted Files](https://codecov.io/gh/apache/incubator-openwhisk/pull/4126?src=pr=tree) | Coverage Δ | | |---|---|---| | [...core/database/cosmosdb/CosmosDBArtifactStore.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4126/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvcmUvZGF0YWJhc2UvY29zbW9zZGIvQ29zbW9zREJBcnRpZmFjdFN0b3JlLnNjYWxh) | `0% <0%> (-95.54%)` | :arrow_down: | | [...core/database/cosmosdb/RxObservableImplicits.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4126/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvcmUvZGF0YWJhc2UvY29zbW9zZGIvUnhPYnNlcnZhYmxlSW1wbGljaXRzLnNjYWxh) | `0% <0%> (-100%)` | :arrow_down: | | [...sk/core/database/cosmosdb/CosmosDBViewMapper.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4126/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvcmUvZGF0YWJhc2UvY29zbW9zZGIvQ29zbW9zREJWaWV3TWFwcGVyLnNjYWxh) | `0% <0%> (-92.6%)` | :arrow_down: | | [...whisk/core/database/cosmosdb/CosmosDBSupport.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4126/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvcmUvZGF0YWJhc2UvY29zbW9zZGIvQ29zbW9zREJTdXBwb3J0LnNjYWxh) | `0% <0%> (-83.34%)` | :arrow_down: | | [...abase/cosmosdb/CosmosDBArtifactStoreProvider.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4126/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvcmUvZGF0YWJhc2UvY29zbW9zZGIvQ29zbW9zREJBcnRpZmFjdFN0b3JlUHJvdmlkZXIuc2NhbGE=) | `0% <0%> (-62.5%)` | :arrow_down: | | [...penwhisk/core/database/cosmosdb/CosmosDBUtil.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4126/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvcmUvZGF0YWJhc2UvY29zbW9zZGIvQ29zbW9zREJVdGlsLnNjYWxh) | `92% <0%> (-4%)` | :arrow_down: | | [...rg/apache/openwhisk/common/ForcibleSemaphore.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4126/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvbW1vbi9Gb3JjaWJsZVNlbWFwaG9yZS5zY2FsYQ==) | `88.46% <0%> (-3.85%)` | :arrow_down: | | [.../openwhisk/core/containerpool/ContainerProxy.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4126/diff?src=pr=tree#diff-Y29yZS9pbnZva2VyL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvcmUvY29udGFpbmVycG9vbC9Db250YWluZXJQcm94eS5zY2FsYQ==) | `93.24% <0%> (+0.45%)` | :arrow_up: | | [...che/openwhisk/core/database/CouchDbRestStore.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4126/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvcmUvZGF0YWJhc2UvQ291Y2hEYlJlc3RTdG9yZS5zY2FsYQ==) | `73.73% <0%> (+0.5%)` | :arrow_up: | | ... and [23 more](https://codecov.io/gh/apache/incubator-openwhisk/pull/4126/diff?src=pr=tree-more) | | -- [Continue to review full report at Codecov](https://codecov.io/gh/apache/incubator-openwhisk/pull/4126?src=pr=continue). > **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta) > `Δ = absolute (impact)`, `ø = not affected`, `? = missing data` > Powered by [Codecov](https://codecov.io/gh/apache/incubator-openwhisk/pull/4126?src=pr=footer). Last update [f35e23a...21348f8](https://codecov.io/gh/apache/incubator-openwhisk/pull/4126?src=pr=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments). This
[GitHub] chetanmeh commented on issue #4111: Update to Gradle 4.10.2
chetanmeh commented on issue #4111: Update to Gradle 4.10.2 URL: https://github.com/apache/incubator-openwhisk/pull/4111#issuecomment-440263221 No change required in other repos This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] codecov-io edited a comment on issue #4125: System test succeeds when concurrency is not enabled
codecov-io edited a comment on issue #4125: System test succeeds when concurrency is not enabled URL: https://github.com/apache/incubator-openwhisk/pull/4125#issuecomment-440220094 # [Codecov](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125?src=pr=h1) Report > Merging [#4125](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125?src=pr=desc) into [master](https://codecov.io/gh/apache/incubator-openwhisk/commit/f35e23ae19b87bf6c3d27f579ca42a4da8ebb2b0?src=pr=desc) will **decrease** coverage by `5.14%`. > The diff coverage is `n/a`. [![Impacted file tree graph](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125/graphs/tree.svg?width=650=l0YmsiSAso=150=pr)](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125?src=pr=tree) ```diff @@Coverage Diff @@ ## master#4125 +/- ## == - Coverage 84.63% 79.48% -5.15% == Files 151 151 Lines7263 7263 Branches 466 466 == - Hits 6147 5773 -374 - Misses 1116 1490 +374 ``` | [Impacted Files](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125?src=pr=tree) | Coverage Δ | | |---|---|---| | [...core/database/cosmosdb/RxObservableImplicits.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvcmUvZGF0YWJhc2UvY29zbW9zZGIvUnhPYnNlcnZhYmxlSW1wbGljaXRzLnNjYWxh) | `0% <0%> (-100%)` | :arrow_down: | | [...core/database/cosmosdb/CosmosDBArtifactStore.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvcmUvZGF0YWJhc2UvY29zbW9zZGIvQ29zbW9zREJBcnRpZmFjdFN0b3JlLnNjYWxh) | `0% <0%> (-95.54%)` | :arrow_down: | | [...sk/core/database/cosmosdb/CosmosDBViewMapper.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvcmUvZGF0YWJhc2UvY29zbW9zZGIvQ29zbW9zREJWaWV3TWFwcGVyLnNjYWxh) | `0% <0%> (-92.6%)` | :arrow_down: | | [...whisk/core/database/cosmosdb/CosmosDBSupport.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvcmUvZGF0YWJhc2UvY29zbW9zZGIvQ29zbW9zREJTdXBwb3J0LnNjYWxh) | `0% <0%> (-83.34%)` | :arrow_down: | | [...abase/cosmosdb/CosmosDBArtifactStoreProvider.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvcmUvZGF0YWJhc2UvY29zbW9zZGIvQ29zbW9zREJBcnRpZmFjdFN0b3JlUHJvdmlkZXIuc2NhbGE=) | `0% <0%> (-62.5%)` | :arrow_down: | | [.../org/apache/openwhisk/common/NestedSemaphore.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvbW1vbi9OZXN0ZWRTZW1hcGhvcmUuc2NhbGE=) | `63.63% <0%> (-24.25%)` | :arrow_down: | | [...g/apache/openwhisk/common/ResizableSemaphore.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvbW1vbi9SZXNpemFibGVTZW1hcGhvcmUuc2NhbGE=) | `92.3% <0%> (-7.7%)` | :arrow_down: | | [.../openwhisk/core/containerpool/ContainerProxy.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125/diff?src=pr=tree#diff-Y29yZS9pbnZva2VyL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvcmUvY29udGFpbmVycG9vbC9Db250YWluZXJQcm94eS5zY2FsYQ==) | `87.38% <0%> (-5.41%)` | :arrow_down: | | [...penwhisk/core/database/cosmosdb/CosmosDBUtil.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvcmUvZGF0YWJhc2UvY29zbW9zZGIvQ29zbW9zREJVdGlsLnNjYWxh) | `92% <0%> (-4%)` | :arrow_down: | | [...rg/apache/openwhisk/common/ForcibleSemaphore.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvbW1vbi9Gb3JjaWJsZVNlbWFwaG9yZS5zY2FsYQ==) | `88.46% <0%> (-3.85%)` | :arrow_down: | | ... and [5 more](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125/diff?src=pr=tree-more) | | -- [Continue to review full report at Codecov](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125?src=pr=continue). > **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta) > `Δ = absolute (impact)`, `ø = not affected`, `? = missing data` > Powered by
[GitHub] mhenke1 opened a new pull request #4127: WIP- Test will be deleted
mhenke1 opened a new pull request #4127: WIP- Test will be deleted URL: https://github.com/apache/incubator-openwhisk/pull/4127 ## Description ## Related issue and scope - [ ] I opened an issue to propose and discuss this change (#) ## My changes affect the following components - [ ] API - [ ] Controller - [ ] Message Bus (e.g., Kafka) - [ ] Loadbalancer - [ ] Invoker - [ ] Intrinsic actions (e.g., sequences, conductors) - [ ] Data stores (e.g., CouchDB) - [ ] Tests - [ ] Deployment - [ ] CLI - [ ] General tooling - [ ] Documentation ## Types of changes - [ ] Bug fix (generally a non-breaking change which closes an issue). - [ ] Enhancement or new feature (adds new functionality). - [ ] Breaking change (a bug fix or enhancement which changes existing behavior). ## Checklist: - [ ] I signed an [Apache CLA](https://github.com/apache/incubator-openwhisk/blob/master/CONTRIBUTING.md). - [ ] I reviewed the [style guides](https://github.com/apache/incubator-openwhisk/wiki/Contributing:-Git-guidelines#code-readiness) and followed the recommendations (Travis CI will check :). - [ ] I added tests to cover my changes. - [ ] My changes require further changes to the documentation. - [ ] I updated the documentation where necessary. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] codecov-io edited a comment on issue #4125: System succeeds when concurrency is not enabled
codecov-io edited a comment on issue #4125: System succeeds when concurrency is not enabled URL: https://github.com/apache/incubator-openwhisk/pull/4125#issuecomment-440220094 # [Codecov](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125?src=pr=h1) Report > Merging [#4125](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125?src=pr=desc) into [master](https://codecov.io/gh/apache/incubator-openwhisk/commit/f35e23ae19b87bf6c3d27f579ca42a4da8ebb2b0?src=pr=desc) will **decrease** coverage by `5.14%`. > The diff coverage is `n/a`. [![Impacted file tree graph](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125/graphs/tree.svg?width=650=l0YmsiSAso=150=pr)](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125?src=pr=tree) ```diff @@Coverage Diff @@ ## master#4125 +/- ## == - Coverage 84.63% 79.48% -5.15% == Files 151 151 Lines7263 7263 Branches 466 466 == - Hits 6147 5773 -374 - Misses 1116 1490 +374 ``` | [Impacted Files](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125?src=pr=tree) | Coverage Δ | | |---|---|---| | [...core/database/cosmosdb/RxObservableImplicits.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvcmUvZGF0YWJhc2UvY29zbW9zZGIvUnhPYnNlcnZhYmxlSW1wbGljaXRzLnNjYWxh) | `0% <0%> (-100%)` | :arrow_down: | | [...core/database/cosmosdb/CosmosDBArtifactStore.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvcmUvZGF0YWJhc2UvY29zbW9zZGIvQ29zbW9zREJBcnRpZmFjdFN0b3JlLnNjYWxh) | `0% <0%> (-95.54%)` | :arrow_down: | | [...sk/core/database/cosmosdb/CosmosDBViewMapper.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvcmUvZGF0YWJhc2UvY29zbW9zZGIvQ29zbW9zREJWaWV3TWFwcGVyLnNjYWxh) | `0% <0%> (-92.6%)` | :arrow_down: | | [...whisk/core/database/cosmosdb/CosmosDBSupport.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvcmUvZGF0YWJhc2UvY29zbW9zZGIvQ29zbW9zREJTdXBwb3J0LnNjYWxh) | `0% <0%> (-83.34%)` | :arrow_down: | | [...abase/cosmosdb/CosmosDBArtifactStoreProvider.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvcmUvZGF0YWJhc2UvY29zbW9zZGIvQ29zbW9zREJBcnRpZmFjdFN0b3JlUHJvdmlkZXIuc2NhbGE=) | `0% <0%> (-62.5%)` | :arrow_down: | | [.../org/apache/openwhisk/common/NestedSemaphore.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvbW1vbi9OZXN0ZWRTZW1hcGhvcmUuc2NhbGE=) | `63.63% <0%> (-24.25%)` | :arrow_down: | | [...g/apache/openwhisk/common/ResizableSemaphore.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvbW1vbi9SZXNpemFibGVTZW1hcGhvcmUuc2NhbGE=) | `92.3% <0%> (-7.7%)` | :arrow_down: | | [.../openwhisk/core/containerpool/ContainerProxy.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125/diff?src=pr=tree#diff-Y29yZS9pbnZva2VyL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvcmUvY29udGFpbmVycG9vbC9Db250YWluZXJQcm94eS5zY2FsYQ==) | `87.38% <0%> (-5.41%)` | :arrow_down: | | [...penwhisk/core/database/cosmosdb/CosmosDBUtil.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvcmUvZGF0YWJhc2UvY29zbW9zZGIvQ29zbW9zREJVdGlsLnNjYWxh) | `92% <0%> (-4%)` | :arrow_down: | | [...rg/apache/openwhisk/common/ForcibleSemaphore.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvbW1vbi9Gb3JjaWJsZVNlbWFwaG9yZS5zY2FsYQ==) | `88.46% <0%> (-3.85%)` | :arrow_down: | | ... and [5 more](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125/diff?src=pr=tree-more) | | -- [Continue to review full report at Codecov](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125?src=pr=continue). > **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta) > `Δ = absolute (impact)`, `ø = not affected`, `? = missing data` > Powered by
[GitHub] csantanapr commented on issue #4111: Update to Gradle 4.10.2
csantanapr commented on issue #4111: Update to Gradle 4.10.2 URL: https://github.com/apache/incubator-openwhisk/pull/4111#issuecomment-440246713 @chetanmeh Are all repos should be updated? Or not necessary for now This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] saurabh1284 commented on issue #104: "wsk api list" is not working
saurabh1284 commented on issue #104: "wsk api list" is not working URL: https://github.com/apache/incubator-openwhisk-deploy-kube/issues/104#issuecomment-440246246 I had recently cloned and deployed it, but still hitting the same issue--> # wsk api list -i error: Unable to obtain the API list: The requested resource does not exist. (code Nd1CfSqDwmJWBS5gMMuwDoezNM0tO23E) # wsk action list -i actions /whisk.system/hello private nodejs:6 /whisk.system/helloweb private nodejs:6 /whisk.system/hellopython private python:2 /whisk.system/greeting private nodejs:6 /whisk.system/invokerHealthTestAction0 private # kubectl get pods -n openwhisk NAME READY STATUS RESTARTS AGE apigateway-585d644b97-tprwb 1/1 Running 0 6d controller-0 1/1 Running 0 6d couchdb-7b5bb9657b-7d5mw 1/1 Running 0 6d init-couchdb-nc86p0/1 Completed 0 6d invoker-gdl5k 1/1 Running 0 6d kafka-0 1/1 Running 0 6d nginx-9d9d8c7b-s2xvj 1/1 Running 0 6d redis-6c7657dbcb-x4wcl1/1 Running 0 6d zookeeper-0 1/1 Running 0 6d # kubectl get svc -n openwhisk NAME TYPECLUSTER-IP EXTERNAL-IP PORT(S) AGE apigateway ClusterIP 10.233.2.1988080/TCP,9000/TCP 6d controller ClusterIP 10.233.37.215 8080/TCP 6d couchdb ClusterIP 10.233.27.3 5984/TCP 6d kafkaClusterIP 10.233.46.150 9092/TCP 6d nginxNodePort10.233.37.34 80:30221/TCP,443:31001/TCP,8443:30587/TCP 6d redisClusterIP 10.233.5.47 6379/TCP 6d zookeeperClusterIP None 2181/TCP,2888/TCP,3888/TCP 6d Any comments / workarounds ?? This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] chetanmeh commented on issue #4111: Update to Gradle 4.10.2
chetanmeh commented on issue #4111: Update to Gradle 4.10.2 URL: https://github.com/apache/incubator-openwhisk/pull/4111#issuecomment-440245442 @csantanapr Can you do a PG run for this? This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] chetanmeh commented on issue #4126: Fix netty leak in CosmosDBArtifactStore`
chetanmeh commented on issue #4126: Fix netty leak in CosmosDBArtifactStore` URL: https://github.com/apache/incubator-openwhisk/pull/4126#issuecomment-440244878 Note that test case fails only intermittently as Netty leak detection logic relies on callbacks post GC. Reducing the max memory to `-Xmx20m` increases the chances of GC to happen however it still does not guarantee that leak detection logic gets triggered consistently This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] chetanmeh opened a new pull request #4126: Fix netty leak in CosmosDBArtifactStore`
chetanmeh opened a new pull request #4126: Fix netty leak in CosmosDBArtifactStore` URL: https://github.com/apache/incubator-openwhisk/pull/4126 Fixes a netty leak due to how query is done in `ComosDBArtifactStore` ## Description In some of the setups we are observing Netty leak warnings like ``` [2018-11-15T17:59:45.025Z] [ERROR] LEAK: ByteBuf.release() was not called before it's garbage-collected. See http://netty.io/wiki/reference-counted-objects.html for more information. ``` Further in some cases Controller process got killed with `OutOfDirectMemoryError` ``` [2018-11-16T11:08:34.576Z] [WARN] An exception was thrown by io.reactivex.netty.pipeline.ssl.SslCompletionHandler$1.operationComplete() io.netty.util.internal.OutOfDirectMemoryError: failed to allocate 16777216 byte(s) of direct memory (used: 7147094023, max: 7158628352) at io.netty.util.internal.PlatformDependent.incrementMemoryCounter(PlatformDependent.java:640) at io.netty.util.internal.PlatformDependent.allocateDirectNoCleaner(PlatformDependent.java:594) at io.netty.buffer.PoolArena$DirectArena.allocateDirect(PoolArena.java:764) at io.netty.buffer.PoolArena$DirectArena.newChunk(PoolArena.java:740) at io.netty.buffer.PoolArena.allocateNormal(PoolArena.java:244) at io.netty.buffer.PoolArena.allocate(PoolArena.java:226) at io.netty.buffer.PoolArena.allocate(PoolArena.java:146) at io.netty.buffer.PooledByteBufAllocator.newDirectBuffer(PooledByteBufAllocator.java:324) ``` Per [Netty Leak Detection][1] documentation this warning would be emitted if its resource leak detection logic (which works by sampling 1% allocations) detects a leak. ### Root cause and Fix To determine the leak source one can set `-Dio.netty.leakDetection.level=PARANOID` and run the setup/test. After setting this property the test still passed fine and no warning was seen. Then we reduced the memory to `-Xmx32m` and re ran `CosmosDBArtifactStoreTests` and the warning showed up in 1 of 10 runs. Digging further issue was determined to be present in the way we current apply limit https://github.com/apache/incubator-openwhisk/blob/f35e23ae19b87bf6c3d27f579ca42a4da8ebb2b0/common/scala/src/main/scala/org/apache/openwhisk/core/database/cosmosdb/CosmosDBArtifactStore.scala#L221-L239 Here we use the `take` operator to ensure that stream does not consume more than `limit` items. If there are more item then source is cancelled. Its so happening if we set limit=1 (which is the case for Identity/auth related queries) then this prevents proper cleanup of underlying source. As a fix we now consume whole stream and then apply limit on the resulting list. This should be safe 1. For query related to `actovations` and `whisks` limit is made part of query also via `TOP X` clause. So underlying db does not return more than limit item 2. For query related to subject we cannot pass `TOP` as we need to perform join which may result in more entries in output. But here the result set would not be more than 1 in most cases ### Test Setup To recreate the issuse a new test `CosmosDBLeakTests` is added which repeatedly performs the auth query multiple times. This test fails much often when running within IDE (with `-Xmx20m`) however I was not able to make it fail when running via command line. Post fix test consistently passes in IDE also. In case of failure it dumps the stack trace where the leaked resource was accessed ``` [2018-11-19T12:48:34.810Z] [ERROR] LEAK: ByteBuf.release() was not called before it's garbage-collected. See http://netty.io/wiki/reference-counted-objects.html for more information. Recent access records: #1: io.netty.util.ReferenceCountUtil.release(ReferenceCountUtil.java:88) io.reactivex.netty.protocol.http.client.ClientRequestResponseConverter.invokeContentOnNext(ClientRequestResponseConverter.java:274) io.reactivex.netty.protocol.http.client.ClientRequestResponseConverter.channelRead(ClientRequestResponseConverter.java:162) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
[GitHub] codecov-io commented on issue #4115: Don't react on Completion message of blocking requests.
codecov-io commented on issue #4115: Don't react on Completion message of blocking requests. URL: https://github.com/apache/incubator-openwhisk/pull/4115#issuecomment-440231764 # [Codecov](https://codecov.io/gh/apache/incubator-openwhisk/pull/4115?src=pr=h1) Report > Merging [#4115](https://codecov.io/gh/apache/incubator-openwhisk/pull/4115?src=pr=desc) into [master](https://codecov.io/gh/apache/incubator-openwhisk/commit/f35e23ae19b87bf6c3d27f579ca42a4da8ebb2b0?src=pr=desc) will **decrease** coverage by `3.35%`. > The diff coverage is `100%`. [![Impacted file tree graph](https://codecov.io/gh/apache/incubator-openwhisk/pull/4115/graphs/tree.svg?width=650=l0YmsiSAso=150=pr)](https://codecov.io/gh/apache/incubator-openwhisk/pull/4115?src=pr=tree) ```diff @@Coverage Diff @@ ## master#4115 +/- ## == - Coverage 84.63% 81.27% -3.36% == Files 151 151 Lines7263 7269 +6 Branches 466 468 +2 == - Hits 6147 5908 -239 - Misses 1116 1361 +245 ``` | [Impacted Files](https://codecov.io/gh/apache/incubator-openwhisk/pull/4115?src=pr=tree) | Coverage Δ | | |---|---|---| | [.../openwhisk/core/containerpool/ContainerProxy.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4115/diff?src=pr=tree#diff-Y29yZS9pbnZva2VyL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvcmUvY29udGFpbmVycG9vbC9Db250YWluZXJQcm94eS5zY2FsYQ==) | `93.42% <100%> (+0.62%)` | :arrow_up: | | [...core/database/cosmosdb/RxObservableImplicits.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4115/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvcmUvZGF0YWJhc2UvY29zbW9zZGIvUnhPYnNlcnZhYmxlSW1wbGljaXRzLnNjYWxh) | `0% <0%> (-100%)` | :arrow_down: | | [...core/database/cosmosdb/CosmosDBArtifactStore.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4115/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvcmUvZGF0YWJhc2UvY29zbW9zZGIvQ29zbW9zREJBcnRpZmFjdFN0b3JlLnNjYWxh) | `0% <0%> (-95.54%)` | :arrow_down: | | [...sk/core/database/cosmosdb/CosmosDBViewMapper.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4115/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvcmUvZGF0YWJhc2UvY29zbW9zZGIvQ29zbW9zREJWaWV3TWFwcGVyLnNjYWxh) | `0% <0%> (-92.6%)` | :arrow_down: | | [...whisk/core/database/cosmosdb/CosmosDBSupport.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4115/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvcmUvZGF0YWJhc2UvY29zbW9zZGIvQ29zbW9zREJTdXBwb3J0LnNjYWxh) | `0% <0%> (-83.34%)` | :arrow_down: | | [...abase/cosmosdb/CosmosDBArtifactStoreProvider.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4115/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvcmUvZGF0YWJhc2UvY29zbW9zZGIvQ29zbW9zREJBcnRpZmFjdFN0b3JlUHJvdmlkZXIuc2NhbGE=) | `0% <0%> (-62.5%)` | :arrow_down: | | [...penwhisk/core/database/cosmosdb/CosmosDBUtil.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4115/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvcmUvZGF0YWJhc2UvY29zbW9zZGIvQ29zbW9zREJVdGlsLnNjYWxh) | `92% <0%> (-4%)` | :arrow_down: | | [...rg/apache/openwhisk/common/ForcibleSemaphore.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4115/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvbW1vbi9Gb3JjaWJsZVNlbWFwaG9yZS5zY2FsYQ==) | `88.46% <0%> (-3.85%)` | :arrow_down: | | [...a/org/apache/openwhisk/core/controller/Rules.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4115/diff?src=pr=tree#diff-Y29yZS9jb250cm9sbGVyL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvcmUvY29udHJvbGxlci9SdWxlcy5zY2FsYQ==) | `89.93% <0%> (+0.67%)` | :arrow_up: | | ... and [22 more](https://codecov.io/gh/apache/incubator-openwhisk/pull/4115/diff?src=pr=tree-more) | | -- [Continue to review full report at Codecov](https://codecov.io/gh/apache/incubator-openwhisk/pull/4115?src=pr=continue). > **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta) > `Δ = absolute (impact)`, `ø = not affected`, `? = missing data` > Powered by [Codecov](https://codecov.io/gh/apache/incubator-openwhisk/pull/4115?src=pr=footer). Last update [f35e23a...600393e](https://codecov.io/gh/apache/incubator-openwhisk/pull/4115?src=pr=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).
[GitHub] codecov-io commented on issue #4125: WIP - Test without concurrency
codecov-io commented on issue #4125: WIP - Test without concurrency URL: https://github.com/apache/incubator-openwhisk/pull/4125#issuecomment-440220094 # [Codecov](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125?src=pr=h1) Report > Merging [#4125](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125?src=pr=desc) into [master](https://codecov.io/gh/apache/incubator-openwhisk/commit/f35e23ae19b87bf6c3d27f579ca42a4da8ebb2b0?src=pr=desc) will **decrease** coverage by `3.49%`. > The diff coverage is `n/a`. [![Impacted file tree graph](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125/graphs/tree.svg?width=650=l0YmsiSAso=150=pr)](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125?src=pr=tree) ```diff @@Coverage Diff@@ ## master#4125 +/- ## = - Coverage 84.63% 81.13% -3.5% = Files 151 151 Lines7263 7263 Branches 466 466 = - Hits 6147 5893-254 - Misses 1116 1370+254 ``` | [Impacted Files](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125?src=pr=tree) | Coverage Δ | | |---|---|---| | [...core/database/cosmosdb/RxObservableImplicits.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvcmUvZGF0YWJhc2UvY29zbW9zZGIvUnhPYnNlcnZhYmxlSW1wbGljaXRzLnNjYWxh) | `0% <0%> (-100%)` | :arrow_down: | | [...core/database/cosmosdb/CosmosDBArtifactStore.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvcmUvZGF0YWJhc2UvY29zbW9zZGIvQ29zbW9zREJBcnRpZmFjdFN0b3JlLnNjYWxh) | `0% <0%> (-95.54%)` | :arrow_down: | | [...sk/core/database/cosmosdb/CosmosDBViewMapper.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvcmUvZGF0YWJhc2UvY29zbW9zZGIvQ29zbW9zREJWaWV3TWFwcGVyLnNjYWxh) | `0% <0%> (-92.6%)` | :arrow_down: | | [...whisk/core/database/cosmosdb/CosmosDBSupport.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvcmUvZGF0YWJhc2UvY29zbW9zZGIvQ29zbW9zREJTdXBwb3J0LnNjYWxh) | `0% <0%> (-83.34%)` | :arrow_down: | | [...abase/cosmosdb/CosmosDBArtifactStoreProvider.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvcmUvZGF0YWJhc2UvY29zbW9zZGIvQ29zbW9zREJBcnRpZmFjdFN0b3JlUHJvdmlkZXIuc2NhbGE=) | `0% <0%> (-62.5%)` | :arrow_down: | | [.../org/apache/openwhisk/common/NestedSemaphore.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvbW1vbi9OZXN0ZWRTZW1hcGhvcmUuc2NhbGE=) | `66.66% <0%> (-21.22%)` | :arrow_down: | | [.../openwhisk/core/containerpool/ContainerProxy.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125/diff?src=pr=tree#diff-Y29yZS9pbnZva2VyL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvcmUvY29udGFpbmVycG9vbC9Db250YWluZXJQcm94eS5zY2FsYQ==) | `87.83% <0%> (-4.96%)` | :arrow_down: | | [...penwhisk/core/database/cosmosdb/CosmosDBUtil.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvcmUvZGF0YWJhc2UvY29zbW9zZGIvQ29zbW9zREJVdGlsLnNjYWxh) | `92% <0%> (-4%)` | :arrow_down: | | [...rg/apache/openwhisk/common/ForcibleSemaphore.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvbW1vbi9Gb3JjaWJsZVNlbWFwaG9yZS5zY2FsYQ==) | `88.46% <0%> (-3.85%)` | :arrow_down: | | [...g/apache/openwhisk/common/ResizableSemaphore.scala](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125/diff?src=pr=tree#diff-Y29tbW9uL3NjYWxhL3NyYy9tYWluL3NjYWxhL29yZy9hcGFjaGUvb3BlbndoaXNrL2NvbW1vbi9SZXNpemFibGVTZW1hcGhvcmUuc2NhbGE=) | `96.15% <0%> (-3.85%)` | :arrow_down: | | ... and [30 more](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125/diff?src=pr=tree-more) | | -- [Continue to review full report at Codecov](https://codecov.io/gh/apache/incubator-openwhisk/pull/4125?src=pr=continue). > **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta) > `Δ = absolute (impact)`, `ø = not affected`, `? = missing data` > Powered by
[GitHub] mhenke1 closed pull request #4121: WIP - Configure local to default concurrency
mhenke1 closed pull request #4121: WIP - Configure local to default concurrency URL: https://github.com/apache/incubator-openwhisk/pull/4121 This is a PR merged from a forked repository. As GitHub hides the original diff on merge, it is displayed below for the sake of provenance: As this is a foreign pull request (from a fork), the diff is supplied below (as it won't show otherwise due to GitHub magic): diff --git a/ansible/environments/local/group_vars/all b/ansible/environments/local/group_vars/all index 4a2d8e0d21..65e0a5ae45 100755 --- a/ansible/environments/local/group_vars/all +++ b/ansible/environments/local/group_vars/all @@ -30,7 +30,3 @@ kafka_topics_invoker_retentionBytes: 104857600 kafka_topics_invoker_retentionMS: 30 env_hosts_dir: "{{ playbook_dir }}/environments/local" - -container_pool_akka_client: true -runtimes_enable_concurrency: true -limit_action_concurrency_max: 500 diff --git a/tests/dat/actions/concurrent.js b/tests/dat/actions/concurrent.js index 786efa2d65..c95a59b79e 100644 --- a/tests/dat/actions/concurrent.js +++ b/tests/dat/actions/concurrent.js @@ -36,4 +36,4 @@ function checkRequests(args, resolve, reject, elapsed) { }, interval); } } -} \ No newline at end of file +} diff --git a/tests/src/test/scala/org/apache/openwhisk/core/limits/ActionLimitsTests.scala b/tests/src/test/scala/org/apache/openwhisk/core/limits/ActionLimitsTests.scala index feba31ee3f..b2376c8181 100644 --- a/tests/src/test/scala/org/apache/openwhisk/core/limits/ActionLimitsTests.scala +++ b/tests/src/test/scala/org/apache/openwhisk/core/limits/ActionLimitsTests.scala @@ -130,7 +130,11 @@ class ActionLimitsTests extends TestHelpers with WskTestHelpers with WskActorSys time <- Seq(None, Some(TimeLimit.MIN_DURATION), Some(TimeLimit.MAX_DURATION)) mem <- Seq(None, Some(MemoryLimit.minMemory), Some(MemoryLimit.maxMemory)) log <- Seq(None, Some(LogLimit.minLogSize), Some(LogLimit.maxLogSize)) - concurrency <- Seq(None, Some(ConcurrencyLimit.minConcurrent), Some(ConcurrencyLimit.maxConcurrent)) + concurrency <- if (ConcurrencyLimit.minConcurrent == ConcurrencyLimit.maxConcurrent) { +Seq(None, Some(ConcurrencyLimit.minConcurrent)) + } else { +Seq(None, Some(ConcurrencyLimit.minConcurrent), Some(ConcurrencyLimit.maxConcurrent)) + } } yield PermutationTestParameter(time, mem, log, concurrency) } ++ // Add variations for negative tests This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] mhenke1 opened a new pull request #4125: WIP - Test without concurrency
mhenke1 opened a new pull request #4125: WIP - Test without concurrency URL: https://github.com/apache/incubator-openwhisk/pull/4125 ## Description ## Related issue and scope - [ ] I opened an issue to propose and discuss this change (#) ## My changes affect the following components - [ ] API - [ ] Controller - [ ] Message Bus (e.g., Kafka) - [ ] Loadbalancer - [ ] Invoker - [ ] Intrinsic actions (e.g., sequences, conductors) - [ ] Data stores (e.g., CouchDB) - [ ] Tests - [ ] Deployment - [ ] CLI - [ ] General tooling - [ ] Documentation ## Types of changes - [ ] Bug fix (generally a non-breaking change which closes an issue). - [ ] Enhancement or new feature (adds new functionality). - [ ] Breaking change (a bug fix or enhancement which changes existing behavior). ## Checklist: - [ ] I signed an [Apache CLA](https://github.com/apache/incubator-openwhisk/blob/master/CONTRIBUTING.md). - [ ] I reviewed the [style guides](https://github.com/apache/incubator-openwhisk/wiki/Contributing:-Git-guidelines#code-readiness) and followed the recommendations (Travis CI will check :). - [ ] I added tests to cover my changes. - [ ] My changes require further changes to the documentation. - [ ] I updated the documentation where necessary. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] markusthoemmes commented on a change in pull request #4115: Don't react on Completion message of blocking requests.
markusthoemmes commented on a change in pull request #4115: Don't react on Completion message of blocking requests. URL: https://github.com/apache/incubator-openwhisk/pull/4115#discussion_r234927460 ## File path: core/invoker/src/main/scala/org/apache/openwhisk/core/containerpool/ContainerProxy.scala ## @@ -497,10 +497,10 @@ class ContainerProxy( } // Sending active ack. Entirely asynchronous and not waited upon. -if (job.msg.blocking) { - activation.foreach( +val sendResult = if (job.msg.blocking) { + activation.map( sendActiveAck(tid, _, job.msg.blocking, job.msg.rootControllerIndex, job.msg.user.namespace.uuid, false)) Review comment: We shoudl reconcile any errors here into a Future.successful or use `onComplete` below. Otherwise you'll end up not sending the second message if the first failed. Unlikely, but just a teeny bit more defensive. I'd go for `onComplete` below, because that makes it more clear on the calling side, that you don't care about errors. FWIW I like this solution a lot better than the one before. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] cbickel commented on a change in pull request #4115: Don't react on Completion message of blocking requests.
cbickel commented on a change in pull request #4115: Don't react on Completion message of blocking requests. URL: https://github.com/apache/incubator-openwhisk/pull/4115#discussion_r234925458 ## File path: core/controller/src/main/scala/org/apache/openwhisk/core/loadBalancer/ShardingContainerPoolBalancer.scala ## @@ -422,11 +423,12 @@ class ShardingContainerPoolBalancer( .foreach(_.releaseConcurrent(entry.fullyQualifiedEntityName, entry.maxConcurrent, entry.memory.toMB.toInt)) if (!forced) { entry.timeoutHandler.cancel() - // If the action was blocking and the Resultmessage has been received before nothing will happen here. - // If the action was blocking and the ResultMessage is still missing, we pass the ActivationId. With this Id, - // the controller will get the result out of the database. // If the action was non-blocking, we will close the promise here. - entry.promise.trySuccess(Left(aid)) + // If the action was blocking we won't close the promise with the result to the user. The ResultMessage + // should have arrived earlier and already resolved it. If it didn't arrive yet (what could happen if log + // collection is really fast and the result is very large), it will most likely arrive in a few milliseconds. + // If that message really got lost, the mechanism of DB-polling will take place. + if (!entry.blocking) entry.promise.trySuccess(Left(aid)) Review comment: You are right. That's a very good point. This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services
[GitHub] atsag closed issue #4113: Documentation corrections
atsag closed issue #4113: Documentation corrections URL: https://github.com/apache/incubator-openwhisk/issues/4113 This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services