Default to <IP_ADDRESS> for PublicAddress instead of first nic,which might be...

Currently if PublicAddress is not given it picks the first nic's IP(it ignores loopback) This can be a  issue if the first nic belongs to docker/virtualbox/vmm etc.
This might work on some cloud environment where the first nic is the public IP of the node and the second nic might be the management IP but this is not universally applicable.
So , defaulting to <IP_ADDRESS> if no PublicAddress is given.

Will try to review this today, else tomorrow

Are there security implications to this?  I.e. is minting a self signed cert for the server for <IP_ADDRESS> dangerous?

I can't answer cert questions - does the cert really need an IP address?  Where is that called?
I hate the name of the flag name in the binary, but whatever.
I can't think of a reason NOT to do this, but we probably want to send out some announcement, if nobody finds a reason not to do this...

@liggitt and I were discussing it - I just don't know if <IP_ADDRESS> makes us significantly more at risk than the current process (today you have a chance of being public, now you'll definitely be public, so at least you'r sure).  The one downside is that the public address of <IP_ADDRESS> won't be visible inside containers I don't think, which means the KUBERNETES_RO service will not resolve from inside a container.
----- Original Message -----

I can't answer cert questions - does the cert really need an IP address?
Where is that called?
I hate the name of the flag name in the binary, but whatever.
I can't think of a reason NOT to do this, but we probably want to send out
some announcement, if nobody finds a reason not to do this...

Reply to this email directly or view it on GitHub:
https://github.com/GoogleCloudPlatform/kubernetes/pull/3719#issuecomment-71107078

The cert contains the ip addresses and DNS names it is valid for as a subjectAltName. I'm 99% sure a subjectAltName of <IP_ADDRESS> wouldn't validate for a network request against https://<IP_ADDRESS> but I'd have to check.

Can we split the problem of cert generation from which IP we bind() to ?
On Thu, Jan 22, 2015 at 3:40 PM, Jordan Liggitt<EMAIL_ADDRESS>wrote:

The cert contains the ip addresses and DNS names it is valid for as a
subjectAltName. I'm 99% sure a subjectAltName of <IP_ADDRESS> wouldn't validate
for a network request against https://<IP_ADDRESS> but I'd have to check.
--
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/kubernetes/pull/3719#issuecomment-71122320
.

I don't understand what you mean <IP_ADDRESS> just means "any interface" - it is
strictly a superset of any chosen interface.  Am I missing some subtlety?
On Thu, Jan 22, 2015 at 2:20 PM, Clayton Coleman<EMAIL_ADDRESS>wrote:

@liggitt and I were discussing it - I just don't know if <IP_ADDRESS> makes us
significantly more at risk than the current process (today you have a
chance of being public, now you'll definitely be public, so at least you'r
sure). The one downside is that the public address of <IP_ADDRESS> won't be
visible inside containers I don't think, which means the KUBERNETES_RO
service will not resolve from inside a container.
----- Original Message -----

I can't answer cert questions - does the cert really need an IP address?
Where is that called?
I hate the name of the flag name in the binary, but whatever.
I can't think of a reason NOT to do this, but we probably want to send
out
some announcement, if nobody finds a reason not to do this...

Reply to this email directly or view it on GitHub:

https://github.com/GoogleCloudPlatform/kubernetes/pull/3719#issuecomment-71107078
--
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/kubernetes/pull/3719#issuecomment-71111061
.

I Just checked by creating a self signed certificate for <IP_ADDRESS> and I was able to access for all IPs .
I was accessing the secure access of apiserver at 8443 port

@thockin
I also spent some time testing k8 cluster with Publicaddress as <IP_ADDRESS> and as some random nic's IP
I was able to create pods and replication controllers in both case.replica count was maintained when i deleted a pod.
here are the logs ::
No cloud provider specified.
Public Address unspecified. Defaulting to <IP_ADDRESS>.
listing is available at <IP_ADDRESS>:8080/swaggerapi/
[restful/swagger] <IP_ADDRESS>:8080/swaggerui/ is mapped to folder /swagger-ui/
Serving read-only insecurely on <IP_ADDRESS>:7080
Serving securely on <IP_ADDRESS>:8443
Serving insecurely on <IP_ADDRESS>:8080
No cloud provider specified.
Failed to list services: Get http://<IP_ADDRESS>:8080/api/v1beta1/services: dial tcp <IP_ADDRESS>:8080: connection refused
Unexpected failure to watch: Get http://<IP_ADDRESS>:8080/api/v1beta1/watch/replicationControllers?resourceVersion=: dial tcp <IP_ADDRESS>:8080: connection refused
Using self-signed cert (/var/run/kubernetes/apiserver.crt, /var/run/kubernetes/apiserver.key)
If there is a scenario which you can think of which is important i can test it to see the implications.

Are we generating certs based on the auto discovery of the IP address?

certs are created based on PublicAddress value.So the existing code picks the first NIC's IP value and assigns it to publicAddress if PublicAddress value is not already assigned. and this value is used for cert creation.

Are you able to do an e2e run with this change?  If not, I can do the e2e
run for you.  Couple comments still outstanding :)
On Fri, Jan 23, 2015 at 4:00 AM, sub-mod<EMAIL_ADDRESS>wrote:

@thockin https://github.com/thockin
I also spent some time testing k8 cluster with Publicaddress as <IP_ADDRESS>
and as some random nic's IP
I was able to create pods and replication controllers in both case.replica
count was maintained when i deleted a pod.
here are the logs ::
No cloud provider specified.
Public Address unspecified. Defaulting to <IP_ADDRESS>.
listing is available at <IP_ADDRESS>:8080/swaggerapi/
[restful/swagger] <IP_ADDRESS>:8080/swaggerui/ is mapped to folder /swagger-ui/
Serving read-only insecurely on <IP_ADDRESS>:7080
Serving securely on <IP_ADDRESS>:8443
Serving insecurely on <IP_ADDRESS>:8080
No cloud provider specified.
Failed to list services: Get http://<IP_ADDRESS>:8080/api/v1beta1/services:
dial tcp <IP_ADDRESS>:8080: connection refused
Unexpected failure to watch: Get
http://<IP_ADDRESS>:8080/api/v1beta1/watch/replicationControllers?resourceVersion=:
dial tcp <IP_ADDRESS>:8080: connection refused
Using self-signed cert (/var/run/kubernetes/apiserver.crt,
/var/run/kubernetes/apiserver.key)
If there is a scenario which you can think of which is important i can
test it to see the implications.
--
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/kubernetes/pull/3719#issuecomment-71184156
.

i can't get e2e-test.sh to work maybe i am missing some args. Complains of kube-env.sh in wrong path.Can you please run it for me. Thanks
What args do I have to pass ?

./hack/e2e-test.sh should be sufficient - are you in GCE or other?
On Fri, Jan 23, 2015 at 9:44 AM, sub-mod<EMAIL_ADDRESS>wrote:

i can't get e2e-test.sh to work maybe i am missing some args. Complains of
kube-env.sh in wrong path.Can you please run it for me. Thanks
What args do I have to pass ?
--
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/kubernetes/pull/3719#issuecomment-71232554
.

I am running e2e on your branch now
On Fri, Jan 23, 2015 at 9:57 AM, Tim Hockin<EMAIL_ADDRESS>wrote:

./hack/e2e-test.sh should be sufficient - are you in GCE or other?
On Fri, Jan 23, 2015 at 9:44 AM, sub-mod<EMAIL_ADDRESS>wrote:

i can't get e2e-test.sh to work maybe i am missing some args. Complains
of kube-env.sh in wrong path.Can you please run it for me. Thanks
What args do I have to pass ?
--
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/kubernetes/pull/3719#issuecomment-71232554
.

Maybe not.  What about the second point - I think if public addr is <IP_ADDRESS> kubernetes_ro is broken
----- Original Message -----

I don't understand what you mean <IP_ADDRESS> just means "any interface" - it is
strictly a superset of any chosen interface.  Am I missing some subtlety?
On Thu, Jan 22, 2015 at 2:20 PM, Clayton Coleman<EMAIL_ADDRESS>wrote:

@liggitt and I were discussing it - I just don't know if <IP_ADDRESS> makes us
significantly more at risk than the current process (today you have a
chance of being public, now you'll definitely be public, so at least you'r
sure). The one downside is that the public address of <IP_ADDRESS> won't be
visible inside containers I don't think, which means the KUBERNETES_RO
service will not resolve from inside a container.
----- Original Message -----

I can't answer cert questions - does the cert really need an IP address?
Where is that called?
I hate the name of the flag name in the binary, but whatever.
I can't think of a reason NOT to do this, but we probably want to send
out
some announcement, if nobody finds a reason not to do this...

Reply to this email directly or view it on GitHub:

https://github.com/GoogleCloudPlatform/kubernetes/pull/3719#issuecomment-71107078
--
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/kubernetes/pull/3719#issuecomment-71111061
.

Reply to this email directly or view it on GitHub:
https://github.com/GoogleCloudPlatform/kubernetes/pull/3719#issuecomment-71151997

Ahh, you mean the service that we expose?  That's a good point.
I'm still running e2e (flaked, restarted) - what does kubectl get services
show?
On Fri, Jan 23, 2015 at 10:14 AM, Clayton Coleman<EMAIL_ADDRESS>wrote:

Maybe not. What about the second point - I think if public addr is <IP_ADDRESS>
kubernetes_ro is broken
----- Original Message -----

I don't understand what you mean <IP_ADDRESS> just means "any interface" - it
is
strictly a superset of any chosen interface. Am I missing some subtlety?
On Thu, Jan 22, 2015 at 2:20 PM, Clayton Coleman <
<EMAIL_ADDRESS>wrote:

@liggitt and I were discussing it - I just don't know if <IP_ADDRESS> makes
us
significantly more at risk than the current process (today you have a
chance of being public, now you'll definitely be public, so at least
you'r
sure). The one downside is that the public address of <IP_ADDRESS> won't be
visible inside containers I don't think, which means the KUBERNETES_RO
service will not resolve from inside a container.
----- Original Message -----

I can't answer cert questions - does the cert really need an IP
address?
Where is that called?
I hate the name of the flag name in the binary, but whatever.
I can't think of a reason NOT to do this, but we probably want to
send
out
some announcement, if nobody finds a reason not to do this...

Reply to this email directly or view it on GitHub:

https://github.com/GoogleCloudPlatform/kubernetes/pull/3719#issuecomment-71107078

--
Reply to this email directly or view it on GitHub
<
https://github.com/GoogleCloudPlatform/kubernetes/pull/3719#issuecomment-71111061

.

Reply to this email directly or view it on GitHub:

https://github.com/GoogleCloudPlatform/kubernetes/pull/3719#issuecomment-71151997
--
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/kubernetes/pull/3719#issuecomment-71237324
.

@smarterclayton @thockin  Please help me understand, I maybe making a silly mistake here and have wrong understanding of how things work.
Assume apiserver Public Address is <IP_ADDRESS> Then it is serving as below
a)Serving read-only insecurely on <IP_ADDRESS>:7080
b)Serving securely on <IP_ADDRESS>:8443
c)Serving insecurely on <IP_ADDRESS>:8080
And
The Services are a below
NAME                IP                         PORT
kubernetes-ro   <IP_ADDRESS>      80
kubernetes        <IP_ADDRESS>           443
If a create a simple apache pod.
and check the ENV variables I see
"KUBERNETES_RO_SERVICE_HOST=<IP_ADDRESS>",
"KUBERNETES_RO_SERVICE_PORT=80",
And I find that <IP_ADDRESS>:80 serves the same info as <IP_ADDRESS>:7080 and <IP_ADDRESS>:8443
So, I think that all is good.The container can access the RO service
Am I  wrong in my understanding ?

Ah, forgot this was going through the proxy, which sees the master.  I think on the whole this is a better solution for single host case.

On Jan 23, 2015, at 2:36 PM, sub-mod<EMAIL_ADDRESS>wrote:
@smarterclayton @thockin Please help me understand, I maybe making a silly mistake here and have wrong understanding of how things work.
Assume apiserver Public Address is <IP_ADDRESS> Then it is serving as below
a)Serving read-only insecurely on <IP_ADDRESS>:7080
b)Serving securely on <IP_ADDRESS>:8443
c)Serving insecurely on <IP_ADDRESS>:8080
And
The Services are a below
NAME IP PORT
kubernetes-ro <IP_ADDRESS> 80
kubernetes <IP_ADDRESS> 443
If a create a simple apache pod.
and check the ENV variables I see
"KUBERNETES_RO_SERVICE_HOST=<IP_ADDRESS>",
"KUBERNETES_RO_SERVICE_PORT=80",
And I find that <IP_ADDRESS>:80 serves the same info as <IP_ADDRESS>:7080 and <IP_ADDRESS>:8443
So, I think that all is good.The container can access the RO service
Am I wrong in my understanding ?
—
Reply to this email directly or view it on GitHub.

I think on a multi-node cluster this will just enforces the use of setting a valid PublicAddress rather picking a random nic's IP.

Agree - that's a net win.
----- Original Message -----

I think on a multi-node cluster this will just enforces the use of setting a
valid PublicAddress rather picking a random nic's IP.

Reply to this email directly or view it on GitHub:
https://github.com/GoogleCloudPlatform/kubernetes/pull/3719#issuecomment-71272983

I am good with this change.  I still have not made e2e pass, but I think it's just destabilized right now.  Will try a few more times

Ah, it is broken.
The net result of this is that the endpoints for the "kubernetes" and "kubernetes-ro" services are now <IP_ADDRESS>, which obviously doesn't work.  Clayton was right, but missed a level of indirection.
So the question remains - how do I reliably choose an IP for the master to publish that pods can reach?  ironically, this would be somewhat easier if we ran the master in a pod -- then we would be in control of the network interface list.

But aren't they served through a proxy?  So they're reachable to any pod?
----- Original Message -----

Ah, it is broken.
The net result of this is that the endpoints for the "kubernetes" and
"kubernetes-ro" services are now <IP_ADDRESS>, which obviously doesn't work.
Clayton was right, but missed a level of indirection.
So the question remains - how do I reliably choose an IP for the master to
publish that pods can reach?  ironically, this would be somewhat easier if
we ran the master in a pod -- then we would be in control of the network
interface list.

Reply to this email directly or view it on GitHub:
https://github.com/GoogleCloudPlatform/kubernetes/pull/3719#issuecomment-71291263

The master gets a service IP, but the endpoint for that Service is listed
as <IP_ADDRESS>
On Fri, Jan 23, 2015 at 5:05 PM, Clayton Coleman<EMAIL_ADDRESS>wrote:

But aren't they served through a proxy? So they're reachable to any pod?
----- Original Message -----

Ah, it is broken.
The net result of this is that the endpoints for the "kubernetes" and
"kubernetes-ro" services are now <IP_ADDRESS>, which obviously doesn't work.
Clayton was right, but missed a level of indirection.
So the question remains - how do I reliably choose an IP for the master
to
publish that pods can reach? ironically, this would be somewhat easier if
we ran the master in a pod -- then we would be in control of the network
interface list.

Reply to this email directly or view it on GitHub:

https://github.com/GoogleCloudPlatform/kubernetes/pull/3719#issuecomment-71291263
--
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/kubernetes/pull/3719#issuecomment-71292362
.

Make proxy resolve <IP_ADDRESS> to master from Args?

On Jan 23, 2015, at 8:22 PM, Tim Hockin<EMAIL_ADDRESS>wrote:
The master gets a service IP, but the endpoint for that Service is listed
as <IP_ADDRESS>
On Fri, Jan 23, 2015 at 5:05 PM, Clayton Coleman<EMAIL_ADDRESS>wrote:

But aren't they served through a proxy? So they're reachable to any pod?
----- Original Message -----

Ah, it is broken.
The net result of this is that the endpoints for the "kubernetes" and
"kubernetes-ro" services are now <IP_ADDRESS>, which obviously doesn't work.
Clayton was right, but missed a level of indirection.
So the question remains - how do I reliably choose an IP for the master
to
publish that pods can reach? ironically, this would be somewhat easier if
we ran the master in a pod -- then we would be in control of the network
interface list.

Reply to this email directly or view it on GitHub:

https://github.com/GoogleCloudPlatform/kubernetes/pull/3719#issuecomment-71291263
--
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/kubernetes/pull/3719#issuecomment-71292362
.

—
Reply to this email directly or view it on GitHub.

Ugh, hack on top of hack.
On Jan 23, 2015 5:27 PM, "Clayton Coleman"<EMAIL_ADDRESS>wrote:

Make proxy resolve <IP_ADDRESS> to master from Args?

On Jan 23, 2015, at 8:22 PM, Tim Hockin<EMAIL_ADDRESS>wrote:
The master gets a service IP, but the endpoint for that Service is
listed
as <IP_ADDRESS>
On Fri, Jan 23, 2015 at 5:05 PM, Clayton Coleman <
<EMAIL_ADDRESS>wrote:

But aren't they served through a proxy? So they're reachable to any
pod?
----- Original Message -----

Ah, it is broken.
The net result of this is that the endpoints for the "kubernetes"
and
"kubernetes-ro" services are now <IP_ADDRESS>, which obviously doesn't
work.
Clayton was right, but missed a level of indirection.
So the question remains - how do I reliably choose an IP for the
master
to
publish that pods can reach? ironically, this would be somewhat
easier if
we ran the master in a pod -- then we would be in control of the
network
interface list.

Reply to this email directly or view it on GitHub:

https://github.com/GoogleCloudPlatform/kubernetes/pull/3719#issuecomment-71291263

--
Reply to this email directly or view it on GitHub
<
https://github.com/GoogleCloudPlatform/kubernetes/pull/3719#issuecomment-71292362>

.

--
Reply to this email directly or view it on GitHub.

--
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/kubernetes/pull/3719#issuecomment-71293687
.

Elegant!  I'd slot some of this into "make single node dev and try it out scenarios not suck".  Agree on multi host you should be encouraged to do the right thing (although if someone has to do the work to make the master resolve for the proxy already...)
I think ultimately it's less hacky than guessing an IP or forcing everyone to guess one that works to kick tires.

On Jan 23, 2015, at 10:13 PM, Tim Hockin<EMAIL_ADDRESS>wrote:
Ugh, hack on top of hack.
On Jan 23, 2015 5:27 PM, "Clayton Coleman"<EMAIL_ADDRESS>wrote:

Make proxy resolve <IP_ADDRESS> to master from Args?

On Jan 23, 2015, at 8:22 PM, Tim Hockin<EMAIL_ADDRESS>wrote:
The master gets a service IP, but the endpoint for that Service is
listed
as <IP_ADDRESS>
On Fri, Jan 23, 2015 at 5:05 PM, Clayton Coleman <
<EMAIL_ADDRESS>wrote:

But aren't they served through a proxy? So they're reachable to any
pod?
----- Original Message -----

Ah, it is broken.
The net result of this is that the endpoints for the "kubernetes"
and
"kubernetes-ro" services are now <IP_ADDRESS>, which obviously doesn't
work.
Clayton was right, but missed a level of indirection.
So the question remains - how do I reliably choose an IP for the
master
to
publish that pods can reach? ironically, this would be somewhat
easier if
we ran the master in a pod -- then we would be in control of the
network
interface list.

Reply to this email directly or view it on GitHub:

https://github.com/GoogleCloudPlatform/kubernetes/pull/3719#issuecomment-71291263

--
Reply to this email directly or view it on GitHub
<
https://github.com/GoogleCloudPlatform/kubernetes/pull/3719#issuecomment-71292362>

.

--
Reply to this email directly or view it on GitHub.

--
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/kubernetes/pull/3719#issuecomment-71293687
.

—
Reply to this email directly or view it on GitHub.

How does the proxy know the master's IP?  By a flag that is configured
early.  If we are discovering and configuring the kubelet and kube-proxy to
have the master's IP, then it is a small stretch to also configure the
master to have the master's IP.  As awful as that might be, its better than
this sort of hack.  No offense :)
On Jan 23, 2015 7:27 PM, "Clayton Coleman"<EMAIL_ADDRESS>wrote:

Elegant! I'd slot some of this into "make single node dev and try it out
scenarios not suck". Agree on multi host you should be encouraged to do the
right thing (although if someone has to do the work to make the master
resolve for the proxy already...)
I think ultimately it's less hacky than guessing an IP or forcing everyone
to guess one that works to kick tires.

On Jan 23, 2015, at 10:13 PM, Tim Hockin<EMAIL_ADDRESS>wrote:
Ugh, hack on top of hack.
On Jan 23, 2015 5:27 PM, "Clayton Coleman"<EMAIL_ADDRESS>wrote:

Make proxy resolve <IP_ADDRESS> to master from Args?

On Jan 23, 2015, at 8:22 PM, Tim Hockin<EMAIL_ADDRESS>wrote:
The master gets a service IP, but the endpoint for that Service is
listed
as <IP_ADDRESS>
On Fri, Jan 23, 2015 at 5:05 PM, Clayton Coleman <
<EMAIL_ADDRESS>wrote:

But aren't they served through a proxy? So they're reachable to
any
pod?
----- Original Message -----

Ah, it is broken.
The net result of this is that the endpoints for the
"kubernetes"
and
"kubernetes-ro" services are now <IP_ADDRESS>, which obviously
doesn't
work.
Clayton was right, but missed a level of indirection.
So the question remains - how do I reliably choose an IP for the
master
to
publish that pods can reach? ironically, this would be somewhat
easier if
we ran the master in a pod -- then we would be in control of the
network
interface list.

Reply to this email directly or view it on GitHub:

https://github.com/GoogleCloudPlatform/kubernetes/pull/3719#issuecomment-71291263

--
Reply to this email directly or view it on GitHub
<

https://github.com/GoogleCloudPlatform/kubernetes/pull/3719#issuecomment-71292362>

.

--
Reply to this email directly or view it on GitHub.

--
Reply to this email directly or view it on GitHub
<
https://github.com/GoogleCloudPlatform/kubernetes/pull/3719#issuecomment-71293687>

.

--
Reply to this email directly or view it on GitHub.

--
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/kubernetes/pull/3719#issuecomment-71298358
.

@thockin I have cluster in rackspace, I cannot get e2e test to work. Is it broken ?
So is the fix not default to <IP_ADDRESS>  instead enforce a strict IP selection rather than a random one?

e2e will not pass with this change (which is good!).  I am not sure what
the best answer really is.  I am letting it cook until Monday or so, but I
don't have a good answer off the top of my head.
On Jan 24, 2015 2:24 PM, "sub-mod"<EMAIL_ADDRESS>wrote:

@thockin https://github.com/thockin I have cluster in rackspace, I
cannot get e2e test to work. Is it broken ?
So is the fix not default to <IP_ADDRESS> instead enforce a strict IP selection
rather than a random one?
--
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/kubernetes/pull/3719#issuecomment-71340540
.

I still cant get e2e to work. Will try on GCE today. is strict IP selection a good idea ?

Could we default public to the docker bridge address if it exists, and returning error otherwise?  In theory it's almost always going to available on a single host setup for users.  I don't like not being able to start (indeterminate behavior based on networking config).

On Jan 27, 2015, at 2:08 AM, sub-mod<EMAIL_ADDRESS>wrote:
I still cant get e2e to work. Will try on GCE today. is strict IP selection a good idea ?
—
Reply to this email directly or view it on GitHub.

The master does not get an IP range like minions do, and it does not get a
custom cbr0 either (at least in GCE).  If we allocated an IP range to the
master (which we need if we want to do 1-machine installs) then maybe this
would work...
Otherwise I think we need to figure out how to plumb the master's IP into
the config for the master.
@sub-mod - do you want to try assigning the master an IP range and getting
the bridge set up?  It should be relatively easy once you crack the hard
outer-shell of salt.  Feel free to bow out of this one, if you need - it's
gotten a bit hairy.  Sigh.
On Tue, Jan 27, 2015 at 11:58 AM, Clayton Coleman<EMAIL_ADDRESS>wrote:

Could we default public to the docker bridge address if it exists, and
returning error otherwise? In theory it's almost always going to available
on a single host setup for users. I don't like not being able to start
(indeterminate behavior based on networking config).

On Jan 27, 2015, at 2:08 AM, sub-mod<EMAIL_ADDRESS>wrote:
I still cant get e2e to work. Will try on GCE today. is strict IP
selection a good idea ?
--
Reply to this email directly or view it on GitHub.

--
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/kubernetes/pull/3719#issuecomment-71716593
.

@thockin yep i like you said this has taken us  into the weeds.
For now just a documentation about --public_address_override  and PublicAddress would suffice.
I will add the commit  for that tomorrow.

@sub-mod is this waiting for review or obsolete?

Is there an issue filed about this?
Not that we're working on putting apiserver into a container now.
cc @ArtfulCoder

@erictune this covered in #4115

@thockin We do want the master to be configured like any other minion.

Is this PR active? If not please close it according to https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/devel/pull-requests.md


views: eqslcard: add ability to navigate between eqsl cards

Adds the ability to navigate between eQSL cards in the eQSL manager screen. This makes the page consistent with the rest of the application like the logbook and eQSL download page.
Fixes: https://github.com/wavelog/wavelog/issues/1417

Let me know if I need to change anything. This has been bugging me for a few while lol.


[PE-D][Tester B] Does not allow certain very important attributes to be edited

There can be typos in extremely important attributes like name and IC, however these typos may or may not be spotted until quite later on, when the database has become massive, and has undergone a lot of changes. These important fields have to be allowed to be edited as the typos may or may not be spotted till much later. If there are concerns on duplicates in the data, perhaps there should be checking of duplicates in the parser stage instead of making these essential attributes unmodifiable.

Labels: type.FeatureFlaw severity.Medium
original: RiyaMehta2211/ped#2

In order to address this issue, we shall update our UG accordingly to inform users to be aware names and Nric are NOT editable.


Not on Google Play store anymore?

Hi guys,
Setting up a new phone and I just couldn't find this app on Google Play store.
Is it not being maintained anymore?
I really like this app!

Just noticed this too.

Hey, thanks for the concern. The situation is as follows.
Google has suspended the app from the Play Store. Believe it or not, this has happened several times before. Hacker News being a website with user generated content, Glider automatically falls under larger scrutiny compared to many other types of apps. Notably, Google requires that the user is able to block and report objectionable content and users, in an in-app flow. For the blocking part of the requirement, I've added the ability to locally block users (after Google had previously suspended the app citing the same policy). Reporting is more difficult because I, as the front-end developer, don't actually maintain any of the data. And Hacker News doesn't provide an automated system for reporting content. That makes it not immediately obvious how this should actually be implemented.
So that's where we currently are. Could I appeal this, or add a button in the app that opens your email client addressing<EMAIL_ADDRESS>with a prefilled template for reporting content, thus somewhat satisfying the policy in a roundabout way? Maybe. But after multiple suspensions, among others because Google felt that "No ads, no telemetry" was not an accurate description of the app (!) I've been increasingly demotivated to fight the beast. What started as a fun side project for me has turned out to not be so fun anymore.


Files that start with a paragraph followed by a thematic break break MarkFlow

Give this content a try:
This is paragraph.
And it still will be.
---------------------
Setext headings can't interrupt paragraphs.

I'm not sure this can be fixed and may be why other parsers enforce using ATX headings.

This was actually submitted before the code was. The eventual code submission handles this.

This was actually submitted before the code was. The eventual code submission handles this.


Integrate module polling threads

Once module hardware controllers as a whole run in their own threads, we should integrate their polling threads into their main threads for ease of synchronization with blocking module commands (such as thermocycler lid control)

No longer applicable


Does this make an assumption that you're running a VM closer to the data center?

The reason I asks, is could I just boot up a docker VM on my machine directly and use that instead?
Or why not just run the python script directly on my machine?
I'm sure I've missed something, so asking for clarification.
Edit: So the script intercepts the traffic and responds to the client the necessary ack to allow abilities to be used, circumventing waiting for the servers ack, did I get it right?

No, it will change the server response to have animation lock duration reduced by the duration of round trip from the VM to the servers. This script should be running as close as possible to your gaming rig.

So have you ever tried using it with a Docker container?
I might try that, but any input or pointers if you have any experience doing that?

If you can give the docker container an IP address visible to your router and the gaming machine, then it probably will work, but then again if iptables is not available for docker, then it won't be. I've only tested this on VM.

Yeah so the container would run locally on my machine(host) and the host would redirect traffic to it.
I'd just need to know the port in advance, and the script seems to randomize the port it listens to(?) - any chance that could be an argument to the script?

Just replace line 1103 to the port you'd like to use for now.

Just replace line 1103 to the port you'd like to use for now.

Will do.
Is there a way to test that the communication between host and container works fine using the script alone without adding routes on the host machine?
Assume I've run iptables -t nat -A POSTROUTING -s <local_ip> -o <device_name> -j MASQUERADE on the container.
Can I use netcat or telnet somehow to check that I can access <local_ip>:<port> with any data?


Easy to have bad link query performance

select
  linked_start_time as "Time",
  span.span_name as "Test",
  span.status_code as "Test status",
  link.span_name as "SCAR action",
  replace(link.linked_status_code::text, 'unset', '') as "Action status",
  replace(linked_trace_id::text, '-', '') as valid_trace_id,
  replace(link.trace_id::text, '-', '')  as scar_trace_id
from link
join span on (linked_parent_span_id = span.span_id)
where
  $__timeFilter(link.start_time) and $__timeFilter(link.linked_start_time) and $__timeFilter(span.start_time) and span.span_tags->'code.function' is not null
order by linked_start_time;

Removing one of these $__timeFilter gives bad performance with full table scan on the associated hypertable. Even simple queries to link can give bad performance if one timeFilter is omitted, for example select * from link where start_time > now() - interval '1 hour' gives https://explain.dalibo.com/plan/l0D with 16s of execution even though I don't have links for this time period.
I assume that's because link uses left joins and doesn't expose its own timestamp. Maybe expose it in the view and update the doc with a warning about this performance trick?

Now that I think of it, why does link does a left join on span and linked_span? Is there a case where span would be null? I don't think that's possible in otel, the links are defined in a list of the span, there is no separate Link message. https://opentelemetry.io/docs/reference/specification/trace/api/#span

link in your query and questions is referring to the view ps_trace.link, correct?
No, the span_id cannot be null. A link must point to two spans. The left join is used in the view as an optimization. If you only select columns from one span or the other, postgres will omit the work of joining the one that was not referenced since it is left joined. An inner join would force it to join whether or not the output is used.
I see your point though. You have no way of filtering on the start time of the link table itself, which causes a full table scan.
Thank you for pointing this out!

I've created an issue for this in the promscale extension repo as that's where it will be fixed. I am going to close this issue; feel free to follow the work there.

I see. Did you confirm this is the case? Aren't view inlined at query time in postgres? Did you try adding a foreign key to link, so that postgresql knows there is an associated span for every link? Not sure if that would work, I'll test.

Hum, so postgresql does scan the joined table even if there is a foreign key, which is odd but ok.
I'm wondering if this optimization is needed. Are there cases where you want to query link but not query any column from span?

You may want to return columns from the linked span but not the source span or vice versa.
I think exposing the start_time of the link table should be sufficient. This will allow you to filter each hypertable on the time column and avoid the full table scans.

In fact, it's required since there is no foreign key and span may not have the same data retention time as link

Yes. Agreed.


Bump to runtime v0.42.8

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 2 (0.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 15.102%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

pkg/app/repl.go
0
2
0.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
510

Relevant Lines:
3377

💛  - Coveralls


Provide SPDX license identifier for packages

This change adds the SPDX license identifier to the generated NuGet packages by adding the appropriate PackageLicenseExpression tag.
Why? Companies use the license information provided by package managers to ensure compliance across large projects. Providing an SPDX license identifier makes it simpler for people to work with automated tools like LicenseFinder or GitLab's license scanning feature.

Thank you!


[SPARK-14372] [SQL] : Dataset.randomSplit() needs a Java version

What changes were proposed in this pull request?
1.Added method randomSplitAsList() in Dataset for java
How was this patch tested?
TestSuite

Test build #55029 has started for PR 12184 at commit 2c1b798.

There is no test suite, please add one.

/cc @liancheng
Should we just make the scala version return a Seq if Array doesn't work for java?

Test build #55029 has finished for PR 12184 at commit 2c1b798.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/55029/
Test PASSed.

Merged build finished. Test PASSed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/55163/
Test FAILed.

Merged build finished. Test FAILed.

@marmbrus thanks for your review. added test.thanks.

Test build #55260 has started for PR 12184 at commit 50ac554.

Test build #55260 has finished for PR 12184 at commit 50ac554.

This patch fails Scala style tests.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/55260/
Test FAILed.

Merged build finished. Test FAILed.

thanks @srowen .updated.

Test build #55262 has started for PR 12184 at commit 624734b.

Test build #55262 has finished for PR 12184 at commit 624734b.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/55262/
Test PASSed.

Test build #55388 has started for PR 12184 at commit cef9f61.

Test build #55388 has finished for PR 12184 at commit cef9f61.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/55388/
Test PASSed.

Looks pretty good to me.

LGTM
@marmbrus Returning Seq seems to be not so Java-friendly?

Thanks! Merged to master.


Add Date and Time of Death to spec

One of the attributes suggested for use in patient matching is the date and time of death for a patient. It does have AgeAtDeath but they aren't equal unless age is accurate to a minute which may not be the best way to represent date and time of death?
http://perspectives.ahima.org/wp-content/uploads/2014/12/PatientMatchingAppendixA.pdf

Done. There is boolean, qualified by one or both of a dateTime and Age in the latest version on the mapping branch.


Fix prompt name generation during prompts/commands migration

Fixes QA-159
It improves Prompts from Command migration, it adds a bit more complex name transformation in order to avoid prompt name validation failure if the command name has some unsupported symbols (like @ or _ or sequence of "-")
Same change was done in SG admin prompts/commands migration tool https://github.com/sourcegraph/sourcegraph/pull/1664
Test plan

Check that you can migrate your local commands via the prompts/commands wizard on the welcome area or prompts tab) even if your commands have unsupported symbols in their name/key field

sorry no action needed just testing things!


refactor(Arbiter): removing lock

This PR removes the lock storage var in the Arbiter contract. Without knowing the context of why it was introduced, it looks to me it's a relic of the past - no other function in the contract uses it and it stays locked after the first call to set_address_of_controller. I'm guessing that's not the intended. Plus the TX is atomic, so there's no need to lock.
I've also renamed the argument just to be more in sync with the naming in the surrounding functions.

It occurred to me the locking mechanism is intentional, so that the module controller is set only once, during the deployment sequence. I presumed it can be changed but I guess why would it? If this is the case, we can just close this PR.


Won't connect to server

it says "Error handling connection: Error: Invalid message" when i connect

Closing, stale.


improve Support to config max msg/frame size of the thrift server

Cherry-pick #35845

run buildall


Full RFC6979 support

Currently BTCKey uses simple HMAC-SHA256 to compute k from private key and tx hash. It works just fine, but it's better to support the "standard" RFC6979 (I simply didn't have enough time to implement it fully).
Pros:

Being standard, signatures from different implementations can be audited using the same algorithm.

(Not a real benefit) RFC6979 checks if k is out of bounds and sequentially computes next values until they are good. Hitting this case is highly improbable (2^-127 chance).

This C code might be of help:
https://github.com/trezor/trezor-crypto/blob/9fea8f8ab377dc514e40c6fd1f7c89a74c1d8dc6/ecdsa.c#L256

I'm posting a 1 btc bounty for full RFC6979 support (with test vectors, of course).

Done in https://github.com/oleganza/CoreBitcoin/commit/e7f15ab76cc115e6b873f06470adb82e475edb2a
@prusnak kudos for reference implementations.


Move clearRect() to the cleanup callback function in useEffect

Logically speaking, the canvas element image should be erased when it's updated.
Instead of running clearRect() before calling draw(), it's easier to understand that it's called as the cleanup of useEffect hook.

It doesn't work due to an error saying canvas.current.width doesn't exist. Updating the Canvas component somehow loses the reference to the canvas element with useRef...

We actually do not want to remove the canvas image every time the user-selected color code gets updated.
So we won't fix this issue.


Typo in the Input component

https://github.com/siimple/neutrine/blob/612a845c620664a0b65b9b41e2ec52f08aa4b182/src/form/input.js#L14
The fluid property is not being applied correctly to the Input components because having fuild instead of fluid in the checking of the value makes it impossible to return true.

Fixed in v0.0.5.


Question about cross-entropy

I read your article entitled "Learning Disentangled Representations with Semi-Supervised Deep Generative Models", and
I think that he could be of great interest for my research. I would like to adapt it to my own problem but I started to
test it on the MNIST database, as you did.
I first used my own implementation for the MNIST case (for simplicity and understanding) and disantlanglement was not working properly.
By checking your implementation, I observed that you use a binary cross entropy loss function for "x". However, as stated in your article,
this is a supposed to be a Gaussian continuous variable. Did I miss something?
Then,  I changed with my own implementation: in the loss function, I replace the Gaussian distribution for "x"  with the binary
cross entropy, then it makes it works!!
Why disantlanglement requires a binary cross entropy loss function for "x" . It shoud be a Gaussian pdf. It makes no sense to me.
Do I miss something? Thanks a lot for your help.

This is indeed a point that is not very well explained in our paper (or indeed in the literature at large).
Basically, when using a binary cross entropy, we "pretend" that the data is sampled from a Bernoulli likelihood, which equates to a cross-entropy loss. The mathematical interpretation of "pretend" here is a little subtle. The idea is that we can first assume a step that binarizes the input:
q(x' | x) = Bernoulli(x' ; x)

In a standard VAE we would then evaluate the loss
E_{q(x' | x) q(z | x)}[ log p(x' | z) ] + KL(q(z | x) || p(z))

It turns out that the reconstruction loss in this objective is just the binary cross-entropy between the (non-binarized) x and the reconstruction. We do something analogous here in the semi-supervised case.
You should be able to these models to work with either a Gaussian or a Bernoulli likelihood. Just remember that in a Gaussian likelihood you do have an extra degree of freedom, which is the noise σ in the likelihood, which effectively controls the strength of the reconstruction loss relative to the other terms in the objective.

This is indeed a point that is not very well explained in our paper (or indeed in the literature at large).
Basically, when using a binary cross entropy, we "pretend" that the data is sampled from a Bernoulli likelihood, which equates to a cross-entropy loss. The mathematical interpretation of "pretend" here is a little subtle. The idea is that we can first assume a step that binarizes the input:
q(x' | x) = Bernoulli(x' ; x)

In a standard VAE we would then evaluate the loss
E_{q(x' | x) q(z | x)}[ log p(x' | z) ] + KL(q(z | x) || p(z))

It turns out that the reconstruction loss in this objective is just the binary cross-entropy between the (non-binarized) x and the reconstruction. We do something analogous here in the semi-supervised case.
You should be able to these models to work with either a Gaussian or a Bernoulli likelihood. Just remember that in a Gaussian likelihood you do have an extra degree of freedom, which is the noise σ in the likelihood, which effectively controls the strength of the reconstruction loss relative to the other terms in the objective.


Bugfix in startMultiple

Fixed a bug in the  startMultiple function which causes the function to never succeed as the timestamp gets reset every call. Also adding the 400ms has no effect (byval) which is fixed in this version.

Thanks!


[Xcode] React native run script build phase fails

I faced this issue in my project which I upgraded, but I created a new project using react-native init and I'm seeing it there as well.
../node_modules/react-native/packager/react-native-xcode.sh

Fails saying node is not found. I fixed it by changing it to the following.
source ~/.nvm/nvm.sh
../node_modules/react-native/packager/react-native-xcode.sh

Since nvm is a sourced shell script, it does need to be sourced for node to work. I'm not sure where the react-native-xcoce.sh instructions came from, but you may want to file an issue there about it?

Oh sorry, I meant to open this issue under react-native. I must have mixed up my open tabs.


feat(*): add remote backend support; add example

This PR adds the ability to use a backend with terraform.  An example bundle has been added utilizing this functionality.
TODO:

[x] ~Wire up outputs~ edit: tracking in https://github.com/deislabs/porter-terraform/issues/11

Closes https://github.com/deislabs/porter-terraform/issues/7
Closes https://github.com/deislabs/porter-terraform/issues/4

/azp run


Fix broken homebrew installation in Ansible 1.8.x

Ansible 1.8.x includes this git module change https://github.com/ansible/ansible-modules-core/commit/0257cb120194403012eb553ce2f5b39346b0a7e4#diff-feb3a901687766220b4e9dee0d263157R547 which means that 'update' option set to 'no' results in only ls-remote instead of clone.
The above caused ansible-role-homebrew to only ls-remote and hence the symlink task will fail because the brew binary won't exist.
Another change I made was the default homebrew_install_path to /usr/local/homebrew. With /usr/local, it creates many files in homebrew source polluting /usr/local, possibly conflicting with pre-existing paths . When users want to uninstall, they have to be careful to delete homebrew files only.
Using /usr/local/homebrew is cleaner and more consistent with plenty other installations like qt, clam, go, meteor, etc.

When users want to uninstall, they have to be careful to delete homebrew files only.

Homebrew provides an uninstall script that does everything for you.

@bfontaine - You're correct... I think I'll revert that particular change to the defaults (especially since I've left it the same in README.md).


After clicking FB ADS can not get the data in onAppOpenAttribution

When I put oneLink use in Facebook ads above, click on the ad to jump to my application, Deferred Deep Linking is normal. But when I have installed the app, I can only get the following data when I click on the ad:

or:

I want to know how to get information oneLink when I click on the corresponding FB ADS

Hey @oyzxchi ,
Did you made sure to use the facebook api?
https://github.com/AppsFlyerSDK/appsflyer-flutter-plugin/blob/master/doc/API.md#enableFacebookDeferredApplinks
Check the following article also:
https://support.appsflyer.com/hc/en-us/articles/207033826-Facebook-Ads-setup-guide#advanced-using-facebook-ads-appsflyer-sdks-for-deferred-deep-linking

Hey @oyzxchi ,
Are you getting the facebook relevant data (campaign etc) when deferred deep linking?

Closing this issue but please reach out if you still need any help!


None of the common-lisp distros working

Please use the following bug reporting template to help produce actionable and reproducible issues. Please try to ensure that the reproduction is minimal so that the team can go through more bugs!

A brief description
I've tried to install/compile the following well known "common-lisp" distributions: SBCL, ECL, CCL, CLISP.
I didn't manage to get one of them working.
Expected results
To see a prompt, obviously ;)
Actual results (with terminal output if applicable)

kfp@AURORA:~$ ecl
ecl: error while loading shared libraries: libecl.so.16.1: cannot enable executable stack as shared object requires: Invalid argument
kfp@AURORA:~$ clisp
/usr/lib/clisp-2.49/base/lisp.run: error while loading shared libraries: libavcall.so.0: cannot enable executable stack as shared object requires: Invalid argument
kfp@AURORA:~$ sbcl
WARNING:
Couldn't re-execute SBCL with proper personality flags (/proc isn't mounted? setuid?)
Trying to continue anyway.
This is SBCL 1.3.0, an implementation of ANSI Common Lisp.
More information about SBCL is available at http://www.sbcl.org/.
SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses.  See the CREDITS and COPYING files in the
distribution for more information.
(hangs) ^Z
[1]+  Angehalten              sbcl
kfp@AURORA:~/ccl$ ./lx86cl64
kfp@AURORA:~/ccl$ #### terminates after about  10s without output
SBCL and CLISP may be installed with apt or manually from the sites below:
SBCL: http://www.sbcl.org/
ECL: https://common-lisp.net/project/ecl/static/files/
CCL: http://ccl.clozure.com/
CLISP: http://www.gnu.org/software/clisp/

Your Windows build number
14393.105
Steps / All commands required to reproduce the error from a brand new installation
e.g. sudo apt install clisp
or sudo apt install sbcl
Strace of the failing command
Required packages and commands to install
ggc, autoconf, make, [svn]

See our contributing instructions for assistance.
BTW: Great thing :)

I just ran into this as well.

Same problem with in maxima, xmaxima, and wxmaxima that I believe use Common Lisp.
$ maxima
personality change failure 0

I use Build 14931.1000.

same problem
$ clisp
/usr/lib/clisp-2.49/base/lisp.run: error while loading shared libraries: libavcall.so.0: cannot enable executable stack as shared object requires: Invalid argument

I have the same problem . Just to say that this invalidates the use of maxima and wxmaxima  and represents a limitation in using Texmacs

I can second this, sbcl complains about the existence of /proc/sys/binfmt_misc

@showtimesynergy - Can you give me some repro steps I can follow to see this if this still reproduces?  I have a binfmt_misc related fix I want to validate.

@benhillis The only time it mentions it is during install via sudo apt-get install sbcl
$ sudo apt-get install sbcl
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
  sbcl-doc sbcl-source slime
The following NEW packages will be installed:
  sbcl
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/6,757 kB of archives.
After this operation, 51.4 MB of additional disk space will be used.
Selecting previously unselected package sbcl.
(Reading database ... 49002 files and directories currently installed.)
Preparing to unpack .../sbcl_2%3a1.1.14-2_amd64.deb ...
Unpacking sbcl (2:1.1.14-2) ...
Processing triggers for man-db (<IP_ADDRESS>-1ubuntu1) ...
Setting up sbcl (2:1.1.14-2) ...
update-binfmts: warning: binfmt_misc module seemed to be loaded, but no /proc/sys/fs/binfmt_misc directory!  Giving up.

attempting to run sbcl after this displays the following and hangs
$ sbcl
WARNING:
Couldn't re-execute SBCL with proper personality flags (/proc isn't mounted? setuid?)
Trying to continue anyway.
This is SBCL 1.1.14.debian, an implementation of ANSI Common Lisp.
More information about SBCL is available at <http://www.sbcl.org/>.

SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses.  See the CREDITS and COPYING files in the
distribution for more information.

@showtimesynergy - I'm no longer seeing the error about binfmt and I'm seeing the sbcl entry under /proc/sys/fs/binfmt_misc.
However when running sbcl it looks like the issue has to do with a call to personality(ADDR_NO_RANDOMIZE) which disabling randomizing of the address space.

Support for ADDR_NO_RANDOMIZE should be out in an insider build soon.  Locally I confirmed that it resolved the sbcl warning but it still hung so we'll need to investigate further.  Please give us feedback on the user voice page so we can prioritize common lisp - https://wpdev.uservoice.com/forums/266908-command-prompt-console-bash-on-ubuntu-on-windo/category/161892-bash

There was no Lisp-related topic that you could vote on so I added one: https://wpdev.uservoice.com/forums/266908-command-prompt-console-bash-on-ubuntu-on-windo/suggestions/17629492-maxima-and-common-lisp-should-work

Do not install SBCL from Ubuntu repo, they are too old.  Recent version of
SBCL (1.3.12, 1.3.15) works on WSL, but can not dump images.
See:
https://sourceforge.net/p/sbcl/mailman/message/35708531/
https://sourceforge.net/p/sbcl/mailman/message/35708604/

MKCL works.

Recent versions of clisp (from its hg repository) and of libffcall (from https://alpha.gnu.org/gnu/libffcall/) should no longer produce the "cannot enable executable stack as shared object requires" error.

Still see this error when starting clisp using (1:2.49-9ubuntu1) latest package provided by Ubuntu 16.04.
Tried to install 2.49 from source and i had to configure the makefile without libsigsegv as it errorered about that. After that I ran make and it blew up with this :-(
*** - UNIX error 5 (EIO): I/O errorMakefile:1397: recipe for target 'interpreted.mem' failed

> Tried to install 2.49 from source
Try a recent version of clisp instead. Maybe this one works: https://launchpad.net/ubuntu/artful/amd64/clisp/1:2.49.60+-2
For a recent version of libffcall, use libffcall-1.13 (from https://ftp.gnu.org/gnu/libffcall/).

In internal builds, I have fixed the executable stack and EIO failures with clisp, and the hang with sbcl. These were three separate issues, surprisingly.
These fixes should be available in a future insiders build.

Does this fix also make it possible to run Maxima?
sudo apt install maxima
Now one gets error:
$ maxima
personality failure 38

Microsoft Windows [Version 10.0.17025.1000]

Nope, this is a different problem. I'll see if that's an easy fix.

This should be fixed in insider build 17063.

SBCL still does not work, it doesn't show the /proc not mounted error anymore. But the line starting with a * (star) does not come, I can type statements e.g. (+ 3 2) but they are not evaluated. If I hit C-C it goes into the debugger and gets  trapped in a debug loop.
However in the interim, I've found a solution. I installed the windows version of SBCL and then made an alias like this:
alias sbcl=sbcl.exe
Now I can use sbcl inside WSL, albeit as a windows executable.

I confirmed that I build CLISP and ECL successfully, and used those lisps to build OpenAxiom.
However, SBCL remains broken.  There are new analysis in this thread
It sounds like WSL might have a weak support for SIGSEGV?

As I reported in Mar 8, 2017, SBCL (1.3.12, 1.3.15) can run in WSL, but can't dump image (save-lisp-and-die), thus can't be built. According to jstarks, this bug seems to be fixed in next version? Has anyone tried in Windows Insider?  Anyway, I'll find out when Windows 1803 get released next month.
Just FYI, there seems to be a regression in recent SBCL versions: starting with SBCL 1.3.21, the prebuilt windows binaries can't run in WSL, it hangs.

I am running 17093.
The previous fixes allow building ECL and CLISP.  I don't think SBCL was fixed.  See the thread on the SBCL list I referenced earlier, it has useful analysis.

> It sounds like WSL might have a weak support for SIGSEGV?
I can't confirm this. CLISP relies on SIGSEGVs as well for its GC (via libsigsegv), and in the current release branch it builds fine and passes its test suite on WSL (Windows build 16299). That is, it catches many many SIGSEGVs and proceeds without problems, just as on real Linux.

If SBCL is still problematic, it would be helpful to open an new issue following the template, especially the repro steps from clean Ubuntu install part. This one was closed because "executable stack and EIO failures" were addressed (plus ADDR_NO_RANDOMIZE circa late 2016).
There might be problems with SIGSEGV handling per #2555 (message) et al. But bear in mind the "pretty sure" caveat in that message over there, and the timeframe of the post. I don't use SBCL and I haven't confirmed whether it is relevant. Sounds from the post above that libsigsegv could be just fine. I only know mcontext_t.uc_mcontext doesn't make it into the handler on WSL last time I checked (which isn't recently).

@GabrielDosReis  I'm using Windows 1803, just built FriCAS with SBCL-1.4.5 (bundled by Ubuntu 18.04) and SBCL-1.4.7 without problems.
I think this SBCL problem is fixed.


Launch Dev Home on windows startup

Summary of the pull request
This PR adds a "Launch on windows startup" button in Settings > Preferences
The toggle when enabled allows Dev Home to start on windows startup

References and relevant issues
Fixes #1042
Detailed description of the pull request / Additional comments
The windows StartupTask API currently only allows us to request the "launch on startup" to be enabled. It does not allow the feature to be disabled. Thus there is a open in settings app button added that allows opening the settings app at Apps > Startup Apps where the setting can be toggled
Validation steps performed
PR checklist

[x] Closes #1042, #1142
[ ] Tests added/passed
[ ] Documentation updated

It does not allow the feature to be disabled.
https://learn.microsoft.com/en-us/uwp/api/windows.applicationmodel.startuptask.disable?view=winrt-22621

It looks like it has a disable method.  Is there a reason why this won't work?

How does this functionality relate to/interact with NthLogonLaunchDevHomeIfNotTriedYet (task.ms/44358372)

@EricJohnson327 is this still needed?

Closing this PR since it's old and we'd probably want a fresh PR to implement this.


How to run this?

Regardless of which Python version I try to run this with, it always crashes with some error....

Happy to help you figure this out if it is still an issue.


Failed when hiding source paths

ghcid failed when GHC option -fhide-source-paths enabled in stack.yaml.

I figured it out in the end, so all supported now.


Integration Test - Release - 2022/01/13 03:18:00

Auto create for integration test. IssueCommandFlow

Docs Build status updates of commit 4416ff5:
:warning: Validation status: warnings

File
Status
Preview URL
Details

csidevdocs-public/IntegrationTest/BuildIntegrationTestFiles/ChangeSentToAuthor.md
:warning:Warning

Details

csidevdocs-public/IntegrationTest/BuildIntegrationTestFiles/ChangeSentToAuthor.md

Line 4, Column 1: [Warning: ms-prod-and-service - See documentation] Only one of the following attributes can exist: 'ms.prod', 'ms.service'. Use ms.prod for on-premise products, or ms.service for cloud services.
Line 4, Column 8: [Warning: duplicate-titles - See documentation] Title 'VS Code Authoring Extension' is duplicated in: 'Demo/demo.md(4,8), Demo/v-caxian/AuthorNotification.md(4,8), Demo/v-caxian/auto-merge.md(4,8), Demo/v-caxian/auto-merger.md(4,8), IntegrationTest/BuildIntegrationTestFiles/ChangeSentToAuthor.md(4,8)'. Titles must be unique within a docset.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

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


feat: Allow signed narrow-width loads

I would absolutely love a release of this 🙏

I would absolutely love a release of this 🙏


Deployment with SSH Key Without Setting Passphrase

I am trying to deploy on a server through SSH using my private key. This private key is encrypted by a passphrase. However, I would like to avoid hardcoding the passphrase in the dploy.yaml file for obvious security reasons.
If I don't add the passphrase key in the config file, or if I add it but leave it empty, dploy doesn't prompt me for the passphrase and tries to decrypt the key without passphrase or with an empty string.
Is there a way to force dploy to ask for the passphrase or is hardcoding it in the config file the only way to get it working?

Hey @julien731  - I know it's been a while, but the new version of dploy that is about to be releases will support custom configs through the CLI. So you set your passphrase when running dploy, like this:
dploy stage --options.passphrase=yoursecretpassphrase

If you want to give it a try, check the beta branch:
https://github.com/LeanMeanFightingMachine/dploy/tree/v2-beta
I've rewritten it from scratch and added more features, including this one!

I'd love to test this feature. If we've installed 1.2.0 via npm, how to we switch to the v2-beta?

@lucasmotta dploy stage --options.passphrase=yoursecretpassphrase is also no option as one surely doesn't want one's pk password in the command history...
Better just ask for it like if using user without password setting.

I would also love to see this feature implemented (dploy asking for passphrase in prompt).


Device shows offline and if I login it creates a new device from scratch?

So things stopped backing up for me about a month ago and I didn't notice / didn't have time to check on it until now. I logged into Crashplan via my Synology and it acted as if I was using a new device with no data backed up yet. I went to the Crashplan website, and under devices it now shows two devices, one which is my actual device with data already backed up which shows as offline, and a new device with no backup data that shows as online. How should I go about bringing my proper device back online? Thanks!

Did you have a volume mapping for the /config folder of the container?

Did you have a volume mapping for the /config folder of the container?

Hmm yes I do, should that not be the case?

Yes you should.  But if you see 2 devices on CrashPlan website, it's either because:

Your current container doesn't have a mapping to /config.
Your current container's /config is not mapped to the same folder as the previous one.
Your previous container had no mapping for /config.

Yes you should. But if you see 2 devices on CrashPlan website, it's either because:

Your current container doesn't have a mapping to /config.
Your current container's /config is not mapped to the same folder as the previous one.
Your previous container had no mapping for /config.

Ah it looks like I forgot to create a mapping for '/config'! Thank you, I think I'm in business now!


add support for multiple channels

It is still unclear what would be the best way to do this, but it would be very useful to have a way to process multiple channels easily.

currently the easiest way is to use alignedbuffer from dplug:core.  It may be useful to make this supported by the library.  For example require each AEffect to have a method that returns an array of itself.

This is added with the calloc template in 59b9899.  More work on this may be done later.  For now this will be good enough.


rehike.hiew.me down atm

Doing some experiments on the server so everything is closed and private. In the meantime, you can use the stable server, which will be updated to the latest commit from the dev branch

Server back up! Please refrain from using the great-site.net server until i find some better, more reliable hosting.


Provide use cases for the abstraction

I suppose this falls under a feature request..
I think there is a lot of great content here. However, honestly they would become far more valuable (to me, at least) if there were use cases detailed in the README.md of each algorithm.

@hulkish If what you're saying is rather than just write out the algos, it will be better to include use cases where each is applicable, you're right.

@Hoxtygen yea, this is pretty much what I'm getting at. Infact, I think for some of these algo's - because they describe a solution and no problem.

@hulkish Same frustration I had when learning data structures.
Not sure how the contribution goes, does the provider of the algo have to be the same one to provide use cases or can anyone contribute?

@hulkish this is very good suggestion that you've made. It would be really nice to have the answer on "Why do I need this algorithm and where can I apply it?" question. It may be an "Application" section in each algorithms README file. @Hoxtygen I think anyone may contribute to the algorithms REAMDEs it may not be necessarily the provider of the algo.


Flutter daemon app launch extension

Different organizations have different requirements for building and launching Flutter applications, but the current Flutter tool does not take this into account. With this PR, customers can create a custom flutter-run script in the flutter/repo/bin/tool-extensions/ directory, and flutter daemon will use that script, if it exists, to launch the Flutter application.
This PR does not augments flutter run and only augments the non-debug daemon launch case.
Future

update Flutter tool daemon debug launch to use this optional extension
refactor flutter run hot and not-hot to have a common code path with this flutter daemon code and use this optional extension
introduce a flutter-build extension point similar to this for customers to hook in their own Flutter build process

@devoncarew @Hixie

Dropping this PR in favor of the extension approach we discussed offline.


Fix vertx devfile matching

What does this PR do?
It is similar to https://github.com/redhat-developer/alizer/pull/193 and it introduces the matchesFormatted function. Upon checking the language.Frameworks & devFile.ProjectType if they are equals, it removes the special characters and the spaces in order to make a better comparison.
It adds the TestDetectVertxDevfile in order to ensure that the vert.x devfile will be selected for projects with main component of Vert.x framework.
Which issue(s) this PR fixes:
Fixes #189

@mike-hoang I had to rebase the current branch after the merge for #193 :) so I've reset your review


Escape analysis caused unintuitive behavior

What did you do?
https://play.golang.org/p/0EKO_Iju5Ol
What did you expect to see?
b ----- b
b ----- b

What did you see instead?
a ----- b
b ----- b

Does this issue reproduce with the latest release (go1.11)?
yep.
System details
go version go1.10.3 darwin/amd64
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/xiaoyi/Library/Caches/go-build"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/xiaoyi/go"
GORACE=""
GOROOT="/Users/xiaoyi/homebrew/Cellar/go/1.10.3/libexec"
GOTMPDIR=""
GOTOOLDIR="/Users/xiaoyi/homebrew/Cellar/go/1.10.3/libexec/pkg/tool/darwin_amd64"
GCCGO="gccgo"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/cb/j3f4sj8j3yq46t5kqcc5mpj80000gn/T/go-build864956246=/tmp/go-build -gno-record-gcc-switches -fno-common"
GOROOT/bin/go version: go version go1.10.3 darwin/amd64
GOROOT/bin/go tool compile -V: compile version go1.10.3
uname -v: Darwin Kernel Version 17.7.0: Thu Jun 21 22:53:14 PDT 2018; root:xnu-4570.71.2~1/RELEASE_X86_64
ProductName:	Mac OS X
ProductVersion:	10.13.6
BuildVersion:	17G65
lldb --version: lldb-900.0.64
  Swift-4.0

When you do []byte(s) where s is a string, the runtime can choose to use a capacity larger than the length of s.  In this case that choice depends on escape analysis.  It chooses 0 in your first case and 32 in your second case (print cap(s) in your Printfs to see this in action).
Closing, as this is not a bug.

Related to #24163.


Unable to Download CNI plugin for 1.16

What happened:
While creating AMI, We are facing issue in running
https://github.com/awslabs/amazon-eks-ami/blame/822aa4ab3894706f2b309b88df0d8c886a6e782d/scripts/install-worker.sh#L182
What you expected to happen:
It should be able to wget that plugin
How to reproduce it (as minimally and precisely as possible):
Anything else we need to know?:
URL formed: https://github.com/containernetworking/plugins/releases/download/v0.8.6/cni-plugins-amd64-v0.8.6.tgz
Correct URL: https://github.com/containernetworking/plugins/releases/download/v0.8.6/cni-plugins-linux-amd64-v0.8.6.tgz
Environment:

AWS Region:
Instance Type(s):
EKS Platform version (use aws eks describe-cluster --name <name> --query cluster.platformVersion):
Kubernetes version (use aws eks describe-cluster --name <name> --query cluster.version):
AMI Version:
Kernel (e.g. uname -a):
Release information (run cat /etc/eks/release on a node):

It appears the CNI release file naming changed in v0.8:
https://github.com/containernetworking/plugins/releases/tag/v0.8.2
It isn't limited to amazon-eks-ami v1.16, it also throws the same error in other build versions (here with make 1.15):
    amazon-ebs: --2020-06-30 19:52:02--  https://github.com/containernetworking/plugins/releases/download/v0.8.6/cni-plugins-amd64-v0.8.6.tgz
    amazon-ebs: Resolving github.com (github.com)... <IP_ADDRESS>
    amazon-ebs: Connecting to github.com (github.com)|<IP_ADDRESS>|:443... connected.
    amazon-ebs: HTTP request sent, awaiting response... 404 Not Found
    amazon-ebs: 2020-06-30 19:52:02 ERROR 404: Not Found.

The string -linux after cni-plugins is new, and missing.

Resolved in #500 (and follow up #520)


codebase not indexing

Before submitting your bug report

[X] I believe this is a bug. I'll try to join the Continue Discord for questions
[X] I'm not able to find an open issue that reports the same bug
[X] I've seen the troubleshooting guide on the Continue Docs

Relevant environment info
- OS:
- Continue:
- IDE:

Description

To reproduce
asking gpt4o in sidebar
Log output
No response

same problem here https://github.com/continuedev/continue/issues/1306

@mdp can i mark as closed? seems working , maybe auto updated?


Always be able to open sql result cells with JSON easily

Issue Type: Bug
Through trial and error it seems that the ability to click on a cell with json contents and have it helpfully open in a seperate page is not intuitive or consistent.
I am using sql based jupyter notebooks but the same behaviour appears in a simple sql query in ADS
I have a table with an nvarchar(max) column that has json contents (or null)
If I return just a single row with json in, I can click the cell and it opens nicely
However if I return multiple rows where the first row is null, I can't
Please can you fix this behaviour by evaluating the first non-null cell instead of just the first row so this always works consistently for the same query regardless of whether the first row returns null or an xml document?
Azure Data Studio version: azuredatastudio 1.36.1 (e56e1d931bbb110fe8f24751423c4e184bb8f22d, 2022-04-21T21:25:10.399Z)
OS version: Windows_NT x64 10.0.19042
Restricted Mode: No

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-8650U CPU @ 1.90GHz (8 x 2112)

GPU Status
2d_canvas: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onoop_rasterization: enabledopengl: enabled_onrasterization: enabledskia_renderer: enabled_onvideo_decode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
undefined

Memory (System)
15.92GB (1.10GB free)

Process Argv

Screen Reader
no

VM
0%

Extensions (15)

Extension
Author (truncated)
Version

admin-pack
Mic
0.0.2

admin-tool-ext-win
Mic
0.0.3

agent
Mic
0.48.0

dacpac
Mic
1.10.0

import
Mic
1.5.0

kusto
Mic
0.5.4

powershell
ms-
2021.12.0

profiler
Mic
0.11.0

query-history
Mic
0.1.0

schema-compare
Mic
1.13.1

sql-assessment
Mic
0.6.1

sql-database-projects
Mic
0.16.1

whoisactive
Mic
0.1.4

azdata-sanddance
msr
3.3.0

vscodeintellicode
Vis
1.2.1

@alanrenmsft we don't have a grid area path, do we?

@chlafreniere  this query editor path works. closing since this is a dupe of #17634


LRO advanced from CADL

See https://github.com/Azure/autorest.csharp/issues/2698 for the basics.
As CADL gives more way to detail the precise LRO flow expected, we anticipate more complex work to flow the additional information to codegen, with possibly azure-core update in the meantime.
This issue is not about parity, since we're talking about information that Swagger didn't have a way to declare.

We need more details about how LRO is defined in CADL. By now, we've found the information is scattered around in the CADL definitions, v.s. centralized in x-ms-longrunning-options in swagger.

@pollingOperation(monitorOp): we can specify the polling operation separately
@pollingLocation: specify the entity (normally the header) to get the polling URL, this seems overlapped with @pollingOperation above
@finalLocation: specify the URL of the final request of LRO?

Need to confirm with @lmazuel

We will use https://github.com/Azure/autorest.csharp/issues/2988 to track LRO. close this one.


Simplify Object Initialization

Summary of the changes

Simplifies Object Initialization.
Actually we mostly just want to watch our PR pipelines.

Fixes: Me needing to create a PR

For some definition of "simplify"

lol, I'm just using the phrasing the Analyzer does.


Serializer should bail out fast if the type is already a byte array [Details inside]

https://github.com/adelowo/onecache/blob/master/utils.go#L31-L34
If the type is a []byte, the serializer should return it as is rather than try encoding it with encoding/gob. I have no idea if encoding the bytes would cause an issue but it seems like a nice addition to have in the codebase

Fixed here https://github.com/adelowo/onecache/commit/3feba30a6be912e3b16bdbc12898da3392d87f39


How can i use producer and consumer connection pooling?

I would like to have a feature where i am allowed to use connection pooling. How do i do that?

Can you explain further? There is only one producer so all code that sends messages share the same connection. There is a separate connection for each consumer.

I just want to understand whether i will get any performance benefit if i create multiple producers? Maybe one for each topic?

From the producer javadoc ...

The producer is thread safe and sharing a single producer instance across threads will generally be faster than having multiple instances.

... so spring-kafka uses that model in DefaultKafkaProducerFactory - it always returns the same producer. If you want to use multiple connections, you will need a separate factories.

KafkaProducer can send message asynchronously, so you didn't need to start multiple KafkaProducer to have performance.
This is not the same pattern for the consumer.


Add support to query Solana data through Bitquery

Update the frontend dropdown to include "Solana Blockchain" as an option.
When this line is called you can also have "Solana Blockchain" as an option: subgraph = request.get_json().get("subgraph")
In backend/backend/services/openAI/service.py, create a different logic structure for the Solana Blockchain data source. Instead of calling GraphService or parsing the documents in a SimpleDirectoryReader, take in an example document from backend/backend/services/openAI/prompts called SolanaExamples.py that is a list of examples with a structure of [question, query]. Call the LLM with the same flow as exists in backend/backend/services/openAI/service.py:

llm_predictor = LLMPredictor(
            llm=OpenAI(temperature=0, model_name="text-davinci-003")
        )

Instead of calling GraphService, use the logic in backend/backend.services/graph/service.py under GraphService to parse the data. However, instead of querying from a subgraph you will query the Bitquery API.
Use the following structure to call the GraphQL API for bitquery:

import requests
def run_query(query):  # A simple function to use requests.post to make the API call.
    headers = {'X-API-KEY': 'YOUR API KEY'}
    request = requests.post('https://graphql.bitquery.io/',
                            json={'query': query}, headers=headers)
    if request.status_code == 200:
        return request.json()
    else:
        raise Exception('Query failed and return code is {}.      {}'.format(request.status_code,
                        query))

# The GraphQL query
query = """
query{
  bitcoin{
    blocks{
      count
    }
   }
}
"""
result = run_query(query)  # Execute the query
print 'Result - {}'.format(result)

LGTM


nanobox is in a suspended state disassociates vm from vagrant

when nanobox is in a suspended state, running multiple (3) nanobox devs nearly concurrently causes the '~/.nanobox/apps/odin/.vagrant/machines/odin/virtualbox' directory to get wiped, thus disassociating the vm from vagrant

It seems the underlying issue here is a bug within virtualbox. I believe @lyondhill has information regarding a known issue on the virtualbox bug list?


Send MiniProgram using PadPro

I'm submitting a...
[ ] Bug Fix
[ ] Feature
[ ] Other (Refactoring, Added tests, Documentation, ...)

Checklist

[ ] Commit Messages follow the Conventional Commits pattern

A feature commit message is prefixed "feat:"
A bugfix commit message is prefixed "fix:"

[ ] Tests for the changes have been added

Description
please describe the changes that you are making
for features, please describe how to use the new feature
please include a reference to an existing issue, if applicable
Does this PR introduce a breaking change?
[ ] Yes
[ ] No

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

update the wechaty-puppet in package.json to version v0.15.25, please review

Great, the basic unit tests are all passed!
However, you forgot to link the related issue in your PR description, so I'll add it for you at here:
Related to: #1806
Please remember to add the related issue number in your Pull Request in the future, especially you also need to fix it at https://github.com/botorange/wechaty-puppet-padpro/pull/172
At last, the Code Climate said that:

Function say has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.

I think it's right, we should think about to make it better to be understood because we still needs to add more supported types to the say function in the future.


Fix NPE in kne deploy.

Currently, if kne deploy is given a file that it can't find it
will return nil for the configuration and the subsequent attempt
to set a field causes an NPE.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

2 of 2 (100.0%)  changed or added relevant lines in 1 file are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage increased (+0.007%) to 64.903%

Files with Coverage Reduction
New Missed Lines
%

cmd/deploy/deploy.go
1
45.45%

Totals

Change from base Build<PHONE_NUMBER>:
0.007%

Covered Lines:
3447

Relevant Lines:
5311

💛  - Coveralls

/gcbrun


feat(deps): upgrade compiler dependencies

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-compiler-dependencies-1.x" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 1184

Questions ?
Please refer to the Backport tool documentation


Margin left and right should be relative to page width

As the title states, horizontal margin should be calculated relative to the page width, not in terms of pixels. Or they should maintain the auto attribute.

OK...Margin left and right calculated as percentage from the parent width.


Must use chrome?

Hello! I've been using your code to help and its great! I want to recommend it to my friends but one of them only uses edge and doesnt use chrome. Is it possible to use edge with this?

Greetings! Unfortunately as of right now, only chrome can be used with betterQuill. I may add edge and firefox support later.


Please Add Requirements for Node.js

Summary
Supported node.js versions needed in the readme
Desired Behaviour
Can someone add a blurb in the readme for the node.js requirement?  Currently it requires node versions 10 or 12 (v8 doesn't work), but it's not stated in the Getting Started section of the readme.  It should also come with a link to some site, nodejs.org or something similar, to show them how for their particular platform.
Possible Solution
Additional context

This is not a Cloud Optimize or documentation issue.
Nobody should be developing with unsupported versions of NodeJS.
NodeJS v8 is no longer supported, and even v10 is in maintenance and will be EOL'd 2021-04-30.
https://nodejs.org/en/about/releases/
Closing.


[Feature Request] support resolveId hook for rspack

Environment

Reproduction

Describe the bug
The latest rspack version already support normalModuleResolver resolveSchema hook, maybe it can be used to intercept it to implement resolveId hook.
Additional context
No response
Logs
No response

Do you want to implement that? PR welcome :)


electron stopped to work on nixos-unstable

Issue description
On nixos-unstable
electron: error while loading shared libraries: libgtk-x11-2.0.so.0: cannot open shared object file: No such file or directory
Steps to reproduce
Technical details
Please run nix-shell -p nix-info --run "nix-info -m" and paste the
results.

system: "x86_64-linux"
host os: Linux 4.17.4, NixOS, 18.09pre145504.784f543cb76 (Jellyfish)
multi-user?: yes
sandbox: no
version: nix-env (Nix) 2.0.4
channels(root): "nixos"
nixpkgs: /nix/var/nix/profiles/per-user/root/channels/nixos

Electron expression hasn't changed since last time it worked.
Maybe its related to gtk changes? @jtojnar

Not aware of any changes in GTK2. Well, I played with GConf but that did not hit unstable yet..

Looking at the expression, electron gets its rpath from atomEnv
https://github.com/NixOS/nixpkgs/blob/629c9011b4e1f2192b19cb06b572a9fa3775a95c/pkgs/development/tools/electron/default.nix#L50
Which was updated to gtk3 in b95b410d43d1432f2dec821dd953ad468557baca. I guess that is the culprit.

@jtojnar Indeed. Thank you much!

Can this be fixed by just adding both gtk2 and gtk3 to atomEnv?

It would make it work but updating/fixing electron is what we should do instead.


mirage: data race in write buffer handling

When using the "direct" network interface of MirageOS, there is the possibility that the write buffer is overwritten before it is flushed out. GT..@.I
00000074  7f 86 4d 83 35 05 b1 1f  5f 90 1d 75 d0 62 0d 26   ..M.5... _..u.b.&
00000084  3d 4c 4d 65 64 ff 75 d8  74 9f 00 00 00 00 01 00   =LMed.u. t.......
00000094  00 00 01 00 00 00 00 10  0a 0e 2f 2e 64 6f 65 73   ........ ../.does
000000A4  6e 6f 74 65 78 69 73 74  00 00 00 00 01 00 00 00   notexist ........
000000B4  01                                                 .

As you can see, the last byte sequence written out 00 00 00 00 01 00 00 00  01 shows up not only at the end of the frame, but also in the middle at 00000054 although the writev call before sent 00 00 31 01 04 00 00 00  01 instead, which means that the same buffer is used twice in one frame, resulting in data being overwritten.
If the buffer is copied before Flow.writev is called here
https://github.com/anmonteiro/gluten/blob/72576927773ac08b34b520c0a7d2bac960bd6e1f/mirage/gluten_mirage.ml#L65-L72
like this:
   let writev flow iovecs =
     let cstruct_iovecs =
       List.map
         (fun { Faraday.buffer; off; len } ->
-          Cstruct.of_bigarray ~off ~len buffer)
+          let cs = Cstruct.of_bigarray ~off ~len buffer in
+          let new_cs = Cstruct.create_unsafe len in
+          Cstruct.blit cs 0 new_cs 0 len;
+          new_cs)
         iovecs
     in
     Lwt.catch

the issue is gone.

There is also a writev_nodelay variant in the TCP implementation (not exposed yet over the Flow interface) which blocks the thread until the buffers are sent, but that creates a lot of small tcp packages: https://github.com/mirage/mirage-tcpip/blob/a7b799cb36435ecb810a92df05ff49fbd264bfbb/src/core/tcp.mli#L64

https://github.com/mirage/mirage-tcpip/blob/76033e871e0f0228b2417d9b1c1a93a9e8f51a74/src/tcp/user_buffer.ml#L256-L277
As you can see User_buffer.write has multiple cases where it stores the buffer and returns, I'm not sure the original authors thought much about this, but we can say write has "lifetime" ownership.

The buffer is owned by writev and should not be re-used, it's documented here:
https://github.com/mirage/mirage-flow/blob/e661203b4305b6ea34d625ec725337d854c4ae83/src/mirage_flow.mli#L78-L84

Aha, thanks for digging further into this. It looks like the correct fix is to modify the Mirage bindings to always make a copy in its writev implementation.

This was fixed in https://github.com/anmonteiro/gluten/pull/32