SAVE renders SPAWN unusable (memory leak?)

Reported by andrew wittenberg on 18 Jul 2016 23:00 UTC
This bug is maddening and may be hard for you to reproduce.  The script below tickles it on my workstation (machine "atw" at GFDL, if you'd like to try it there), although not on our analysis cluster when running the same Ferret executable.  Here's my workstation info:
% uname -a
Linux atw 2.6.32-642.1.1.el6.x86_64 #1 SMP Fri May 6 14:54:05 EDT 2016 x86_64 x86_64 x86_64 GNU/Linux

% free -g
             total       used       free     shared    buffers     cached
Mem:            47         17         29          0          1         11
-/+ buffers/cache:          4         42
Swap:            3          0          3

This bug is very sensitive to small changes in the script, e.g. changing the region or shortcutting some of the complex tree of variable definitions.  So I'm wondering if it is revealing some sort of memory leak.  I hope so -- as I've also been seeing some hard-to-reproduce Ferret SEGFAULTs at random times with complex calculations, that so far I've been unable to track down.  May or may not be related.
This example uses in.nc and clim_axes_noleap.nc, which I have put in
[first let's define some variables:
 	NOAA/PMEL TMAP
 	FERRET v7 (opt)
 	Linux 2.6.32-573.22.1.el6.x86_64 64-bit - 06/20/16
 	18-Jul-16 18:23

yes? set mem/size=4000
 Cached data cleared from memory
yes? use clim_axes_noleap
           *** NOTE: regarding ./clim_axes_noleap.nc ...
           *** NOTE: NOLEAP climatological axes defined
yes? can dat/all
yes? use in.nc
yes? let dtdz = IF k[gk=temp](ftp://ftp.gfdl.noaa.gov/pub/atw/EXPORT/ansley/bug/]

Alright,) EQ 1 THEN temp[ELSE temp[z=@ddc](z=@ddf]/2)
yes? let tot = dtdz[let clim = tot[gt=mon_irreg_nlp@mod](z=@max]
yes?)
yes? let anom = tot - clim[let dev = anom - anom[t=@ave](gt=tot@nrst]
yes?)
yes? can reg; set reg/x=-240:-70/y=-20:20
yes? let xlo = xboxlo[let xhi = xboxhi[gx=temp](gx=temp];)
yes? let ylo = yboxlo[let yhi = yboxhi[gy=temp](gy=temp];)
yes? let a = dev[!-> DEFINE VARIABLE a = dev[t=@ave,x=-240:-70,y=-20.43856811523438:20.43856906890869](t=@ave,x=`xlo[x=@min]`:`xhi[x=@max]`,y=`ylo[y=@min]`:`yhi[y=@max]`]
)

Then we save the variable to a NetCDF file:
yes? save/q/clob/file="a.nc" a
yes? sp echo "Saved once..."
Saved once...

Works fine.  But now if we try it again -- then the SPAWN command no longer works!
yes? save/q/clob/file="a.nc" a
yes? sp echo "Saved twice."
yes? sp ls

You might ask why the explicit variable limits in the definition of variable A.  In my actual application (which is enormous and took me several hours to whittle down to this report), these limits are important -- e.g. for saving out a particular modulo replication of a longitude or climatological axis.  And in my actual code the second SAVE is appending a different variable to the file, not simply overwriting the file using an identical command; I just wanted to make this report as simple as possible.
This is blocking our automated diagnostics at GFDL, so I'm marking this as priority URGENT.
And in case it helps, see also #1437 and #1473 (yes, the last two digits just happen to be swapped in those two past reports -- made me do a double-take!).
Migrated-From: http://dunkel.pmel.noaa.gov/trac/ferret/ticket/2452

Comment by ansley.b.manke on 19 Jul 2016 17:27 UTC
I'm not seeing the behavior on one rhel6 machine, getting a crash with the older rhel5 one, so that's potentially a place to find a memory leak.  And we have one more place to try to work on it here.

Comment by ansley.b.manke on 19 Jul 2016 22:57 UTC
This might not be what would we'd usually be called a memory leak, but it's definitely a case of too much memory being used, and that is the cause of the failure to run the SPAWN command.
The calculation involves a couple of transformations on the same region of the variable TEMP, a @DDF in Z and a @DDC in Z. Ferret should read the variable TEMP for the requested region once into memory, and compute the centered and forward derivatives; then those should be re-used as needed.
Turning on the diagnostic mode, I see that instead, what is happening is that Ferret reads variable TEMP for  I=1:17, J=2:69, K=1:27, L=1:240 a total of 8 times for each SAVE statement, saving each separately in memory, and also the @DDF and @DDC are re-computed and stored multiple times.
To decide whether to re-read or re-compute a variable or expression, Ferret matches the current context consisting of a variable or expression (an item on the stack), with items in memory.  The internal-variable number (corresponding to an expression), the dataset, and the coordinates must match.  Here, the coordinates stored for the memory-resident variables are ever so slightly different from the coordinates for the context being tested, so Ferret decides to re-load the data and recompute the expression.
This is not new; running the script with Ferret v6.72 from 2011 and viewing it in diagnostic mode, shows that it's doing the same multiple loading of data and expressions, however the script does work with v6.72. That version is single precision and so uses less total memory. Calculations that involve coordinates have always been done with double precision and did not change with double-precision Ferret. With recent Ferret versions, I believe the SPAWN commands are failing because of a lack of memory.  The function form of spawn that returns a list to a Ferret variable, makes a call from c to popen, and at the point where this script fails, that call is returning a NULL result, and one reason for a failure is an inability to allocate memory.
The fix will be to find how the "context" and "memory resident" information is winding up being different.

Comment by andrew.wittenberg on 19 Jul 2016 23:17 UTC
Thanks for this forensic work!  So it sounds like the following are needed:

Understand why the coordinates differ slightly, causing the context to be reloaded.

Check for memory overflow before the next command (e.g. SPAWN) is processed.  If there's an overflow, then stop executing the script, and issue an error message.

Two questions:
a) The forward difference, temp[z=@ddf], is only needed at the top (k=1) level, not the entire domain... is that indeed what Ferret is doing?  (I hope it's not computing this for the entire domain...)
b) Do the coordinates of the request have to exactly match what's in memory?  Or can they just be any interior subset?

Comment by ansley.b.manke on 19 Jul 2016 23:50 UTC
''So it sounds like the following are needed:

Understand why the coordinates differ slightly, causing the context to be reloaded.''

This is the essential bug - the requested coordinates lie slightly OUTSIDE the range of the range of what is listed as being in memory, see question b) below. The coordinages should be identical in this case.
''
2) Check for memory overflow before the next command (e.g. SPAWN) is processed. If theres an overflow, then stop executing the script, and issue an error message.''
Yes the silent failure of the spawn is poor behavior. I don't know if there's a way to detect a memory overflow. SPAWN as a command, echoing results back to the std output, is done in such a way that there doesn't seem to be a way to detect and return an error code, but the SPAWN function, which returns data such as a list of variables, makes this popen call which does have a return. It should be possible for the SPAWN command to also call this, test the return, and close the pipe that's been opened, to allow for error to be generated.
Two questions:
''a) The forward difference, temp[is only needed at the top (k=1) level, not the entire domain... is that indeed what Ferret is doing? (I hope it's not computing this for the entire domain...)''
It is computing the whole z range. In general, this is just "If k eq 1 then something-on-that-grid, else something-else".  You could use
yes? let dtdz = IF kgk=temp EQ 1 THEN temp[ELSE tempz=@ddc
''
b) Do the coordinates of the request have to exactly match what's in memory? Or can they just be any interior subset?''
The memory item is reused as long as the coordinate range of the request lies within the range in memory

Comment by andrew.wittenberg on 20 Jul 2016 00:10 UTC
OK -- thank you!  I wasn't aware of my poor coding on that IF..THEN.  In the future I'll definitely change that to k=1:2 as you suggest.
This may or may not be related, but I just got this when running the original script(s) that had boiled down to the above report:
**ERROR Ferret crash; signal = 11
*** glibc detected *** /home/atw/ferret/exe/x86_64/rhel6/ferret-7.0/bin/ferret_v7.0: free(): corrupted unsorted chunks: 0x000000000b665fd0 ***
Segmentation fault

This is an example of the crashes that I see from time to time.  Is there any way I can help diagnose such things, say with a traceback?  I tried running the same script again, but no such crash occurred.  I'm wondering if it may have to do with other activity on the machine, from other users who have grabbed their own memory.

Comment by andrew.wittenberg on 20 Jul 2016 00:28 UTC
It looks like your suggestion of k=1:2@ddf gives an error:
 	NOAA/PMEL TMAP
 	FERRET v7 (opt)
 	Linux 2.6.32-573.22.1.el6.x86_64 64-bit - 06/20/16
 	19-Jul-16 20:26

yes? use levitus_climatology
yes? set reg/y=0/z=0:300
yes? let dtdz = IF k[EQ 1 THEN temp[k=1:2@ddf](gk=temp]) ELSE temp[shade dtdz
 **ERROR: inconsistent sizes of data regions: Z axis
          TEMP[K=1:2@DDF](k=@ddc]
yes?) has 2 points (K=1:2@DDF)
          expression has 10 points (K=01:10)

But k=1@ddf following seems to work:
yes? let dtdz = IF k[EQ 1 THEN temp[k=1@ddf](gk=temp]) ELSE temp[k=@ddc]
yes? shade dtdz

Is that kosher?

Comment by ansley.b.manke on 20 Jul 2016 01:07 UTC
Huh, I thought I had a test where  IF k[EQ 1 THEN tempk=1:2@ddf ELSE... did work, but can't find that now.
Because we're talking about just one grid-point in z, temp[has a one-point grid in the Z direction, so it's conformable and can be combined with a multi-point Z axis. This is kosher:
yes? let dtdz = IF k[gk=temp](k=1@ddf]) EQ 1 THEN temp[ELSE temp[k=@ddc](k=1@ddf])
yes? shade dtdz

but if we wanted to replace the result over some range of z, it would give errors as above.

Comment by andrew.wittenberg on 20 Jul 2016 17:29 UTC
Here's another crash.  This one produced a traceback.
  The issue of exactly matching (or in this case, less-than or greater-than or equal), is risky, and I have added tests for matching to approximate machine accuracy. I think behavior is more likely with irregularly-space axes, and it's hard to know how common it has been. This fix will definitely speed up the test script and any others that were triggering this re-loading and re-computing of expressions.
For the issue of the silent failure of the SPAWN command, there is a status flag return as an option from the "CALL SYSTEM" routine that is used, but it does not seem to return a reliable result. I am guessing that is why it isn't currently used.  I'll make a separate ticket on that.
Let's keep an eye out for crashes. It's possible that they come from the over-use of memory that this bug fixes.  If they don't seem to clear up, we can start a new ticket.


[BUG]: NumPy return not compiling

Problem description
Thanks for this new endeavour.
I'm trying to play around, and the example from the docs does not compile:
#include <nanobind/nanobind.h>
#include <nanobind/ndarray.h>

namespace nb = nanobind;

const float data[] = { 1, 2, 3, 4, 5, 6, 7, 8 };

NB_MODULE(my_ext, m)
{
m.def("ret_numpy", []() {
    size_t shape[2] = { 2, 4 };
    return nb::ndarray<nb::numpy, float, nb::shape<2, nb::any>>(
        data, /* ndim = */ 2, shape);
});
}

/Users/tdegeus/data/prog/tests/test_nanobind/my_ext.cpp:43:12: error: no matching constructor for initialization of 'nb::ndarray<nb::numpy, float, nb::shape<2, nb::any>>'
    return nb::ndarray<nb::numpy, float, nb::shape<2, nb::any>>(
           ^
/Users/tdegeus/miniforge3/envs/test/lib/python3.11/site-packages/nanobind/include/nanobind/ndarray.h:251:5: note: candidate constructor not viable: no known conversion from 'const float[8]' to 'void *' for 1st argument
    ndarray(void *value,
    ^
/Users/tdegeus/miniforge3/envs/test/lib/python3.11/site-packages/nanobind/include/nanobind/ndarray.h:246:14: note: candidate constructor not viable: requires single argument 'handle', but 3 arguments were provided
    explicit ndarray(detail::ndarray_handle *handle) : m_handle(handle) {
             ^
/Users/tdegeus/miniforge3/envs/test/lib/python3.11/site-packages/nanobind/include/nanobind/ndarray.h:269:5: note: candidate constructor not viable: requires single argument 't', but 3 arguments were provided
    ndarray(const ndarray &t) : m_handle(t.m_handle), m_dltensor(t.m_dltensor) {
    ^
/Users/tdegeus/miniforge3/envs/test/lib/python3.11/site-packages/nanobind/include/nanobind/ndarray.h:273:5: note: candidate constructor not viable: requires single argument 't', but 3 arguments were provided
    ndarray(ndarray &&t) noexcept : m_handle(t.m_handle), m_dltensor(t.m_dltensor) {
    ^
/Users/tdegeus/miniforge3/envs/test/lib/python3.11/site-packages/nanobind/include/nanobind/ndarray.h:244:5: note: candidate constructor not viable: requires 0 arguments, but 3 were provided
    ndarray() = default;
    ^

It does compile without the const-ness of data

nanobind doesn't currently have a way of returning constant arrays and indicating this to the downstream library. You will need to cast away the constness for now.

Sure, thanks. It's just the docs than that need to be updated


result compare

Have you compared the results with paper?

Sorry, I didn't compare with paper. (As I know, the author release the dataset now, you can train it by yourself )  --- I am not working on it recently, so i am sorry ～

so，does anyone compare the result of this work with the paper？

I will do it in October. （I am finding a job recently, so forgive me.）

emm，i just want to make sure if this repo works well。

I have update the code and results in pre-version，I will update results of v2（using learnable fusion） tomorrow

@holyhao I have update the code and results in pre-version，I will update results of v2（using learnable fusion） tomorrow

Thanks for your work. By the way,do you train the net on larger batchsize and lr. I see that you set batchszie only 8 and lr is even small.

I think it's better to use larger lr (I find the loss curve decrease too slow at the beginning). --- but I did not try it (the learning in the paper is very small --- 1e-8)
You can try larger batchsize（and can also use vgg with batch normalization --- I use pre-trained vgg without bn layer, and use a pre-trained model from caffe may increase the results, many projects find caffe-pretrained model have good performance）.
welcome to share your results, thank you ~

I try lr=1e-4 with backbone resnet18 ,it works fine and converges faster. But when i try larger batchsize like 32,48, it converges slow and gets worse val results. It confused me, as far as I known, larger batchsize should leads to better results. Do you have some ideas about this.

I did not have a machine with large memory（GPU）, so i have no "engineering experiment" in large batch size. However, there is several discuss about bach-size:

stack exchange
《Deep Learning》Ian p172 (Chinese version)：small batch size may have regularization, with better generalization.

However, I think there must be some practical tip to train model in larger batch size. （I am sorry without good suggestions. :cry: ）

Your reply  really inspires me and thank you very much.


Files is offered as Standard and Premium.

In the table describing the types of storage accounts and their capabilities, Files are listed as Premium only.  But there is a Standard tier also.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 06288d35-3c83-c29d-95d8-a56823d910a3
Version Independent ID: 002fb5f5-5e4a-a95a-4564-2c399bcb5e06
Content: Storage account overview - Azure Storage
Content Source: articles/storage/common/storage-account-overview.md
Service: storage
Sub-service: common
GitHub Login: @tamram
Microsoft Alias: tamram

@stdistef Thank you for your feedback! We will review and provide an update as appropriate.

@stdistef Are you referring to Account King FileStorage? Can you point me what exactly are you referring too.
FileStorage  it support only premium

Hi.  No, i am referring to the table where is says what I quoted.  Near the top.
What yiu shared us correct about Account Kind and I have no issue there.  Premium are built that way, and Standard are built using GPV2 with the option to extend Large files, giving the new 100TiB size capability.
But my point is Azure Files offers standard file shares, which are hosted on hard disk-based (HDD-based) hardware, and premium file shares, which are hosted on solid-state disk-based (SSD-based) hardware.  But the Table doesnt reflect that.

@stdistef - thanks for your feedback! I'm not clear on what you are referring to, however. In the table, Azure Files for standard shares is listed under the GPv2 account type, and Azure Files for premium shares is listed under the FileStorage account type.
What is it that you think we need to add to the table?

@roygara FYI

OK, I am at a desktop now and can operate better than my mobile.
This table is what I reported.
<EMAIL_ADDRESS>I saw the lower entry and saw Premium only.
Now you called my attention to the top (also highlighted).  So Standard 100TiB Files can also leverage Tiers (hot cool and archive) in a general purpose storage account?    I guess I didn’t know that.  When Standard Files was announed with the new performance levels, I must admit I thought it was just FILES.
If I am mistaken, close the case.
From: Tamra Myers<EMAIL_ADDRESS>Sent: Thursday, March 5, 2020 3:31 PM
To: MicrosoftDocs/azure-docs<EMAIL_ADDRESS>Cc: Steve DiStefano<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [MicrosoftDocs/azure-docs] Files is offered as Standard and Premium. (#49423)
@stdistefhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fstdistef&data=02|01|stdistef%40microsoft.com|90d03bd7d1904b7a6b1808d7c14417a2|72f988bf86f141af91ab2d7cd011db47|1|0|637190370507735811&sdata=UeZa1kOb%2BmvHEEPxVQW1GT23so0LmI1l%2F5qogkzZHTc%3D&reserved=0 - thanks for your feedback! I'm not clear on what you are referring to, however. In the table, Azure Files for standard shares is listed under the GPv2 account type, and Azure Files for premium shares is listed under the FileStorage account type.
What is it that you think we need to add to the table?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2Fazure-docs%2Fissues%2F49423%3Femail_source%3Dnotifications%26email_token%3DAISDPLHPUC7GULRRLQE34E3RGADXRA5CNFSM4LAXAK22YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEN6ZEFY%23issuecomment-595431959&data=02|01|stdistef%40microsoft.com|90d03bd7d1904b7a6b1808d7c14417a2|72f988bf86f141af91ab2d7cd011db47|1|0|637190370507745807&sdata=qV8iDzY1aWU2DyD5MmJGTulwKxG2F%2FexapxaUgbwrOc%3D&reserved=0, or unsubscribehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAISDPLFTKBM6BEDEH3RE64LRGADXRANCNFSM4LAXAK2Q&data=02|01|stdistef%40microsoft.com|90d03bd7d1904b7a6b1808d7c14417a2|72f988bf86f141af91ab2d7cd011db47|1|0|637190370507745807&sdata=cNU1DiIcOte1CPYl4KUpGTxYkpF3BiPAFXhoU2mkPoo%3D&reserved=0.

@stdistef Yes, that's correct. Standard file shares with large file shares enabled (scaling up to 100 TiB) can make use of tiers. As you say, Files (standard file shares) are called out in GPv2 (among the other services like blobs) in that table, whereas FileStorage is strictly limited to premium file shares.
I'm going to go ahead and close this out now, since that's what you requested. Please feel free to re-open or open a new issue if you've any further questions.
Thanks for reaching out.
#please-close
@tamram  FYI


Update ru.json

hey had some issues with translation sync, will close this, can you please submit a new PR?


High CPU usage when plugin is enabled

Describe the bug
My CPU usage is spiking to 400-600% when the GraphQL plugin is enabled in Webstorm
To Reproduce
Use the plugin on medium to large size schema files (20,000+ lines)
Expected behavior
The CPU usage (hopefully) shouldn't be this high, I don't remember noticing it on older versions of the plugin.
Screenshots
Enabled:

Disabled:

Version and Environment Details
Operation system: MacOS Ventura 13.3.1 (22E261) (Apple M1)
IDE name and version: WebStorm 2023.1.1
Plugin version: 4.0.0

Hi! Could you please make a CPU snapshot at the very moment of high CPU usage, upload it here and then share the upload ID?
To start CPU profiling please use (Help | Diagnostic Tools | Star/Stop CPU Usage Profiling action) and several thread dumps (Diagnostic Tools | Dump Threads action) also at the time of reproduction.


Run pre-commit

⚠ IMPORTANT ⚠: This is a public repository. Make sure to not disclose:

[x] personal data beyond what is necessary for interacting with this Pull Request;
[x] business confidential information, such as customer names.

Quality gates:

[x] I'm aware of the Contributor Guide and did my best to follow the guidelines.
[x] I'm aware of the Glossary and did my best to use those terms.

Fixes issues that was previously merged.

I'm merging this because I need it for another PR. :smile:


Non-author contributor names

The displayed name for a non-author contributor on the article.
User Stories
Author

As an author, I would like to be able to see (but not edit) the names of non-author contributors (e.g. editors, reviewers) so that I can confirm this information is correct.
As an author, I would like to be able to distinguish non-author contributors (editors, reviewers) from the main author list so that I do not confuse the two.

Production staff

As production staff, I want to be able to delete non-author contributors so that I can remove any added in error.
As production staff, I want to be able to add new non-author contributors so that I can include any missed in error.
As production staff, I want to be able to see which parts of a non-author contributor's name have been designated first name(s) + initials, and which surname(s) so that I can make sure this has been done correctly.
As production staff, I want to be able to edit the name of a non-author contributor so that I can ensure that the information is correct and conforms to house style.
As production staff, I want to be able to add a prefix/suffix to a non-author contributor so that I can ensure they are distinguishable from a parent or child with the same name (e.g. Fred Smith Jnr).
As production staff, I want to be able to remove a prefix/suffix from a non-author contributor so that I can correct any mistakes.

But what if . . . ?

Considerations

It needs to be absolutely clear that the non-author contributors are not part of the main author list!
At eLIfe, editors are required for research content; they are optional for Feature content; they will not be present for Corrections/Retractions. Reviewers are entirely optional as not all reviewers agree to revel their identity
eLife only allows suffixes and then only a select few (we don't allow PhD or MD for example, just Roman numerals, Jnr and Snr). Other publishers may allow other suffixes and may also allow prefixes.
There can be more than one set of non-author contributors. How many and what they are is likely a configuration issue per journal. So far, it does not sound like they should be added on the fly.

XML requirements
Non-author contributors are captured as contrib elements inside a contrib-group element which is distinct from the author list. In the article front/article-meta, this distinction is currently handled with an appropriate value for the contrib-group/@content-type.
Editors and reviewers should be captured in a contrib-group[@content-type="peer-review"]. Translators should be captured in a contrib-group[@content-type="translators"].
<article-meta>
   …
   <contrib-group content-type="peer-review">
 	<contrib>
                    <name>
                        <suffix>III</suffix>
                        <surname>...</surname>
                        <given-names>....</given-names>
                    </name>
                    <role>Senior Editor</role>
                    <xref ref-type="aff" rid="aff5">5</xref>
 	</contrib>
 	<contrib>
                    <name>
                        <surname>...</surname>
                        <given-names>...</given-names>
                    </name>
                    <role>Reviewing Editor</role>
                    <xref ref-type="aff" rid="aff5">5</xref>
 	</contrib>
 	<contrib>
                    <name>
                        <surname>...</surname>
                        <given-names>....</given-names>
                    </name>
                    <role>Reviewer</role>
                    <xref ref-type="aff" rid="aff5">5</xref>
 	</contrib>
        <contrib>
                    <name>
                        <surname>...</surname>
                    </name>
                    <role>Reviewer</role>
                    <xref ref-type="aff" rid="aff6">6</xref>
 	</contrib>
 	<contrib>
                    <name>
                        <surname>...</surname>
                        <given-names>....</given-names>
                        <prefix>Dr.</prefix>
                    </name>
                    <role>Reviewer</role>
                    <xref ref-type="aff" rid="aff6">6</xref>
 	</contrib>
 	<aff id="aff5">
 	 	<institution>...</institution>
 	 	<country>...</country>
         </aff>
 	<aff id="aff6">
 	 	<institution>...</institution>
 	 	<country>...</country>
         </aff>
   </contrib-group>
   <contrib-group content-type="translators">
 	<contrib>
                    <name>
                        <surname>...</surname>
                        <given-names>....</given-names>
                    </name>
                    <role>English Translator</role>
                    <xref ref-type="aff" rid="aff7">7</xref>
 	</contrib>
 	<aff id="aff7">
 	 	<institution>...</institution>
 	 	<country>...</country>
         </aff>
   </contrib-group>
…
</article-meta>

The name of reviewers, editors, and translators may contain the same elements as author names:

surname (the only one that must be present in name)
given-names
prefix
suffix

Custom Vocabulary
Texture needs to allow for customisable contrib-groups in addition to the three outlined above. A publisher may want to distinguish between other forms of non-author contributors, and these should be able to be accounted for with some form of customization that would allow the user/publisher to capture these contributors in their own distinct contrib-group with an appropriate @content-type value.
Taken from: https://github.com/elifesciences/TextureRequirements/issues/47

See inVision files for design suggestions


image-copy invalid for some regions

If the issue is to do with Azure CLI 2.0 in-particular, create an issue here at Azure/azure-cli

Extension name (the extension in question)
image-copy
Description of issue (in as much detail as possible)
Some locations appear to be invalid inputs as target locations. For example, running --target-location brazilsoutheast, gives
output: BadRequestError: The provided location 'brazilsoutheast' is not available for resource group. List of available regions is 'centralus,eastasia,southeastasia,eastus,eastus2,westus,westus2,northcentralus,southcentralus,westcentralus,northeurope,westeurope,japaneast,japanwest,brazilsouth,australiasoutheast,australiaeast,westindia,southindia,centralindia,canadacentral,canadaeast,uksouth,ukwest,koreacentral,koreasouth,francecentral,southafricanorth,uaenorth,australiacentral,switzerlandnorth,germanywestcentral,norwayeast,australiacentral2'.
However, Azure's website says that disk storage / managed disks are allowed in brazilsoutheast, so I am wondering if this is caused by a part of the extension which has yet to be updated.

hi @qwordy could you pls help to have a look? thanks

@jfred147 Can you add "--debug" to command and attach output here? I'll check which step fails.


Added C++

@InvisibleRain : thanks! But see https://www.shlomifish.org/lecture/C-and-CPP/bad-elements/#using-namespace-std . Please revise andsorry it took me so long.

Merged, thanks.


Fixed where entropy for entrance_code (nonce) was too low

According to the MIG, the entrance_code value must adhere to:
"Alphanumeric, strict (letters and numbers only) - with a maximum length of 40 characters"
Notes:

The $length argument of IDeal::random() was left untouched in order not to create a backwards breaking change.

Thank you for this PR


Grid pagination with external component

Could you please explain how to use an external component to control the pagination of a grid?
The Grid does not seem to expose properties to retrieve the current pageSize, pageNumber, ...
I tried to use the Pagination component but when I change the ActivePageNumber programmatically after a PageChanged event, it does not seem to be updated.

@agriffard Sorry for the late response and thank you for trying BlazorBootstrap. At this moment, external pagination is not supported. However, you can try using GridSettingsProvider.
Link: https://docs.blazorbootstrap.com/components/grid#save-and-load-grid-settings


Failed to display type error on Windows

Problem
It's very easy to describe the issue so I'm not gonna split it into many sections.
OS: Windows 10, update 1809
Stack version: 1.9.1
GHC version: not related

Install via stack install intero
Start via stack exec intero
Type some simple ill-typed expressions like 1+'a'
Reproduced!

λ> stack exec intero
Intero 0.1.37 (GHC 8.4.4)
Type :intro and press enter for an introduction of the standard commands.

Intero-Service-Port: 57601
λ> 1+'a'

<interactive>:1:1: error:
    *** Exception: <stderr>: hPutChar: invalid argument (invalid character)
λ>

What is Exception: <stderr>: hPutChar: invalid argument (invalid character)?
I suppose it's a bug.
Without intero, ghci gives friendly error message showing that it's ill-typed expression.

[X] I checked the issue tracker for existing issues about this problem.
[X] I'm using the latest version of intero.
[X] I am not using Nix, which is notorious for breaking stack, intero and lots of other things.
[X] I have checked that my error is not GHC's fault by testing my project on standard GHCi.
[X] I am using calm, polite language.
[X] I am not trying to use intero on bleeding edge GHC (head or nightly); Intero is only developed against full GHC releases.

@chrisdone Sorry for posting an additional comment on the closed issue.
How could I change codepage in emacs/intero?

I changed my whole window to use CP65001 (which is supported as a beta feature).


Saving AR without values / calling Command::insert without columns

When Command::insert is called without any column values defaults are used. Resolves #7374.
This PR should wait for #8030 to be accepted to make QueryBuilder::insert() easier to overload.

This is ready for adoption, any comments?

@nineinchnick is it adjusted to deal with the fact that #8030 wasn't merged and alternative implementation was?

Changelog is missing.

Also I think this one fixes something...

@samdark yes, I think I've updated it after #8030 has been resolved.

#7374

Thanks!


Bigchaindb installation Error using Vagrant in windows10

I am getting the error "Message: Errno::ENOENT: No such file or directory @ rb_sysopen - configuration/hosts/all" while installing bigchaindb using vagrant

Please help
Thanks in advance

We don't support installing BigchainDB using Vagrant on Windows 10.


some ideas for the Docker support

Pipe needs to be adjusted as well

At this point everything is working.
Tested:

Install
index.php rewrite
Ref-Downloads
LoTW-Sync
QSL-Image Download
miscellaneous Awards

Yeah. tested this.
Everythings working.
much fewer layers / leaner Image. Well done.
Let's wait for #306 until merge, because cron will change with that PR

Just a marker here.
As mentioned in our call - ./application/cache is missing rw for group.
Rest is fine

Thx to you guys :) @dg0tm @int2001  👍


Instance shader uniform renders with the wrong value under specific cases and timings

Godot version
4.0 28174d531b7128f0281fc2b88da2f4962fd3513e
System information
Windows 10 64 bits GLES3 GeForce GTX 1060 6GB/PCIe/SSE2
Issue description
This might be related to #54897, but the way it happens for me is so convoluted I still decided to create a separate issue. At best it adds some info.
In my voxel engine, I create a lot of unique mesh instances, each with unique shader instance uniform values. I just switched to that system since I ported my work to Godot 4, however I could not get any of the values to be correct. They seem to be garbage, random. Initially I thought I was doing things wrong, but after investigations all values on my side are correct, Godot is just rendering them badly.
Steps to reproduce
I tried making an MRP but failed to reproduce this analytically. I could not figure out manually what sequence of events lead to the problem.
So my last option was to tune down a voxel terrain to very few chunks, just enough to see the bug happen. Then I dumped all MeshInstance function calls, and created a new project that simply replays these calls with a simplified shader and BoxMeshes. It did reproduce the issue.
What the calls do boils down to creating MeshInstances, setting properties on them, and then adding them to the tree, or not. The calls are not necessarily grouped together, they can be interleaved.
It is still quite a hairy bunch of calls though, so I did a few extra things to get some clues:

Many MeshInstances in the repro do not get added to the tree in the end (this is expected behavior in the context of the voxel engine), so I tried filtering these out. Surprisingly, it made the visible MeshInstances show up with correct uniform values. I did not keep this because it alters the repro.

After all calls are executed, and observing wrong rendering, I dumped the scene so it can be inspected in the editor afterward. Opening that dump results in correct rendering. It shows that the values set on the MeshInstances were correct, but there is a bug at runtime that made the renderer use wrong values.

2.1) Such inspection also confirms that despite multiple instances having the same position, only one is visible in the tree, they do not overlap (this happens because those meshes are made to handle seams originally).

I made it possible to replay the calls more or less rapidly. Turns out this has an effect on the result, none of which are correct though.
10% of the calls per frame:

50% of the calls per frame:

All calls in one frame:

Expected result from dumped scene:

Minimal reproduction project
InstanceUniforms2.zip
Start main scene, press space bar to play the calls.
Replay speed can be adjusted in main.gd.

In the end I think I'll close as duplicate of #56313, just going to add a comment


Darkmode layout problem in Products Page when in large screen size

Headless CMS Page (/solutions/headless-cms/)
Hybrid CMS (/solutions/hybrid-cms/)

Repetition of background
Solutions (/solutions)

Having scrolling when large screen size and same issues above
Digital Experience Platform (solutions/digital-experience-platform/)

Integrations Menu doesn't have attached link / page to it?

DXP Enterprise (/solutions/digital-experience-platform/dxp-enterprise/)

When in darkmode the text disappears

https://github.com/zesty-io/website/pull/1357
PR is open for the issue
Integrations Menu doesn't have attached link / page to it? -> I will connect with katie to remove it from the navbar for now


⚠ Bofrost.be has degraded performance

In 015c5be, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 2339 ms

Resolved: Bofrost.be performance has improved in bbc13f4.


Recover panics thrown by the Recovery handler ErrorHandlerFunc

If the user specified function itself panic's, catch and log.
(also adds a check to the happy path test to make sure the handler was called)
See discussion in #134.
cc/ @pjebs
@meatballhat I'm curious if you have any thoughts about the discussion in #134 and this implementation.

I don't know why but this feels more idiomatic:

if rec.ErrorHandlerFunc != nil {
	func () {

		defer func() {
			if err := recover(); err != nil {
				rec.Logger.Printf("provided ErrorHandlerFunc panic'd: %s, trace:\n%s", err, debug.Stack())
				rec.Logger.Printf("%s\n", debug.Stack())
			}
		}

		rec.ErrorHandlerFunc(err)

	}()
}

With additional advantage of perhaps considering making it into a goroutine.
Seems cleaner and more idiomatic.

Plus respect for PrintStack setting.

Good call, that is more idiomatic -- pushed as 8a633e4

I made another change.

`PrintStack' is only used to control if the stack is written as part of the HTTP response. I'm on the fence as to whether it'd be desirable to have the panic trace from within the callback in the stack output in the HTTP response body.

Forgot about that. Then a setting to not log errors from error handler - at least for the kind of stuff I do, it'll just clutter up the stdout/sterr logs.
What do you think about making it into a goroutine?

or change signature of ErrorHandlerFunc func(interface{}) to accept a bool value to indicate whether we log errors or not.
I personally think we don't log errors AT ALL. We leave that to the person implementing the error handler in their own code. Recovery middleware should should just protect app from crashing.

@pjebs I tentatively agree with you regarding logging errors, but, given the current implementation, I think we should strive to keep in the spirit of it -- which I think would be logging the second trace.

What about making it run in a goroutine to get the request over and done with as fast as possible from the client's perspective? After all, the error handler is not for the client. They should not have to bear the cost of it's execution time.

Given that the current implementation does not make use of goroutines for its outputting I'd argue that that is out of scope of this change. I'd be happy to review a PR (preferably with benchmarks) that would add more usages of goroutines to the library though.


New open source project for Swagger

Hi,
I wanted to let you know that I have created a new tiny open source project related to Swagger.
The project's goal is to validate the documentation with the actual code and in its initial version, it supports validation of JAX-RS classes for paths and POJOs for definitions.
I'll appreciate if you add the link to this project to README.md under Java section.
GitHub: https://github.com/kenshoo/swagger-validator
Thank you!

@tarlog - that's great! Could you submit a PR against the front-page README and add your library at the appropriate place?
If you have Twitter, let me know and I'll mention you on the announcement.
Also, if you don't mind, please provide me your email in case we need to contact you in the future regarding the library. Feel free to send me your email address directly to<EMAIL_ADDRESS>if you don't want to share it in a public ticket.

Created. See https://github.com/swagger-api/swagger-spec/pull/262
Thanks!

Thanks, merged :)


bash/shell language support

would be good to have 🐴

Shell Language is already included in monaco-language repo.
When this version will be bundled in monaco-editor?


Add assertion for creating media pool item if not found

Changelog Description
Loading with improved communication.
Additional info
Asserts creation of media pool item when not found for specified files. This ensures proper handling and error messaging in such cases.

Task linked: OP-8273 Resolve: missing GetClipProperty

Can we get Resolve: in the PR title as well - as long as the multiple hosts/applications are in core that can help changelogs and/or e-mail notifications since "labels" don't usually appear there?

Asserts creation of media pool item when not found for specified files. This ensures proper handling and error messaging in such cases.

Could you include testing notes?

When does this occur?
Is there something the user can do about this? Like, can the error message also describe WHY it's wrong or what the user can do about it?
As far as I'm aware when using assert you don't need to make the value after the , a AssertionError instance. If it's just a string then Python will raise that string as AssertionError automatically. Right?
Instead of an assert should this be LoadError?

Thanks to @BigRoy there was found the reason why this error can happen. Thanks man!


Updating the theme in the settings page does not reflect on the HamburgerMenu

The HamburgerMenu or the splitview will stay on the theme they started with and will only change upon restart. Consider using ThemeResource instead of binding for the brushes.

I fixed this issue locally:

Use ThemeResource instead of binding when setting brushes.
Use a single Custom.xaml style file. ThemeDictionaries merging causes unexpected behavior.

I am willing to submit a pull request, but I am afraid the changes I made are quite controversial and will need to be discussed.

Don't merge the files though. I will not accept that pull request.

Here's a design goal. To support Styles/Setters that allow the user to see auto-compelted intellisense properties so they know what they can actually change. Right now we are accomplishing that by using Dependency Properties on the control. Those are bound to the individual properties then. I think we might be able to get the best fo both worlds. But I will need to test it.

Pretty curious of your solution. Care to email me a sample<EMAIL_ADDRESS>


Issue Tracker Link in FAQ Needs to Be Updated

https://dolphin-emu.org/docs/faq/
"If you find a bug in a game that isn't listed on the Wiki, please checkout the issue tracker..."
Link should be updated to: https://bugs.dolphin-emu.org/projects/emulator/issues

Should be already fixed in #46. Maybe its not pushed to production yet. cc @delroth

The FAQ data is dynamic and in DB. @JMC47 can fix it.

Fixed.


Migrate to nx

Context
This project should be migrated to use nx using this migration guide.

Closed by 7b8318b1f909c61da3a834583349624b0383f01d.


Just outright doesn't work at all

I added an Excel file, committed, made some changes, committed again and used git diff, and it shows nothing about the change at all (but does detect that there is a change):
C:\Users\Me\Documents\Stuff>git diff 13e4f32..3fc2f84
diff --xl a/Finanzen_010.xlsx b/Finanzen_010.xlsx

No further output is generated. I tried all the various advised ways of installing (locally, globally, with install xl and install xltrail), the given git xl install seemed to work fine, at least it reported no errors, and I am guessing that output with diff --xl shows that it is working behind the scenes, just not generating any output.

After some further research, the output seems to be affected by having something that provides a diff executable installed, so I suspect git-xl somehow depends on having a particular other software installed that provides that. My Windows did not come with any diff installed, and calling diff manually results in 'diff' is not recognized as an internal or external command, operable program or batch file..
If that is the case, it would be helpful if the install page mentioned needing to have another software installed.

it only diffs VBA code.

🤦♂ sorry


https issues

Hi.
I make a subdomain, it points to my public server IP.
I put the subdomain in, put client port 80, it loads.
I have a different site at 443, I put 443. I get:
400 Bad Request
The plain HTTP request was sent to HTTPS port
Chrome shows secured site, the URL includes HTTPS:// - how cant the request be over http?

I'm not sure I understand what's happening. What are your values for Domain, Client Address, and Client Port?

Domain: test.example.com
Client Address: <IP_ADDRESS>
Port: 443
It should be loading 443 securely, but the application thinks http is being used.
Port 80 loads fine (which is a different application.

From: Anders Pitman<EMAIL_ADDRESS>Sent: 22 November 2020 08:35
To: boringproxy/boringproxy<EMAIL_ADDRESS>Cc: voarsh2<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [boringproxy/boringproxy] https issues (#17)
I'm not sure I understand what's happening. What are your values for Domain, Client Address, and Client Port?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/boringproxy/boringproxy/issues/17#issuecomment-731715761, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AONDJPZ7PTV3ZK2MKOPSX7DSRDEMJANCNFSM4T6GYIWA.

Ah ok. So you have your own TLS cert for test.example.com and you want
boringproxy to just pass through (essentially being an SNI proxy) to let
your server handle TLS, ie end-to-end encryption like ngrok TLS tunnels?
On Sun, Nov 22, 2020, 5:03 AM voarsh2<EMAIL_ADDRESS>wrote:

Domain: test.example.com
Client Address: <IP_ADDRESS>
Port: 443
It should be loading 443 securely, but the application thinks http is
being used.
Port 80 loads fine (which is a different application.

From: Anders Pitman<EMAIL_ADDRESS>Sent: 22 November 2020 08:35
To: boringproxy/boringproxy<EMAIL_ADDRESS>Cc: voarsh2<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>
Subject: Re: [boringproxy/boringproxy] https issues (#17)
I'm not sure I understand what's happening. What are your values for
Domain, Client Address, and Client Port?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub<
https://github.com/boringproxy/boringproxy/issues/17#issuecomment-731715761>,
or unsubscribe<
https://github.com/notifications/unsubscribe-auth/AONDJPZ7PTV3ZK2MKOPSX7DSRDEMJANCNFSM4T6GYIWA

.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/boringproxy/boringproxy/issues/17#issuecomment-731737331,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AB3VHKGU7AEQUANOYW4CVVLSRD4ZVANCNFSM4T6GYIWA
.

I suppose that makes sense.
Other alternative is to disable 443 for the software I am using and just use port 80. Not feasible long term.
Also, NGROK (self hosted) doesn't support this. But I have no problems with paid NGROK. 😄
Could this be sorted?

From: Anders Pitman<EMAIL_ADDRESS>Sent: 22 November 2020 16:29
To: boringproxy/boringproxy<EMAIL_ADDRESS>Cc: voarsh2<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [boringproxy/boringproxy] https issues (#17)
Ah ok. So you have your own TLS cert for test.example.com and you want
boringproxy to just pass through (essentially being an SNI proxy) to let
your server handle TLS, ie end-to-end encryption like ngrok TLS tunnels?
On Sun, Nov 22, 2020, 5:03 AM voarsh2<EMAIL_ADDRESS>wrote:

Domain: test.example.com
Client Address: <IP_ADDRESS>
Port: 443
It should be loading 443 securely, but the application thinks http is
being used.
Port 80 loads fine (which is a different application.

From: Anders Pitman<EMAIL_ADDRESS>Sent: 22 November 2020 08:35
To: boringproxy/boringproxy<EMAIL_ADDRESS>Cc: voarsh2<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>
Subject: Re: [boringproxy/boringproxy] https issues (#17)
I'm not sure I understand what's happening. What are your values for
Domain, Client Address, and Client Port?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub<
https://github.com/boringproxy/boringproxy/issues/17#issuecomment-731715761>,
or unsubscribe<
https://github.com/notifications/unsubscribe-auth/AONDJPZ7PTV3ZK2MKOPSX7DSRDEMJANCNFSM4T6GYIWA

.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/boringproxy/boringproxy/issues/17#issuecomment-731737331,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AB3VHKGU7AEQUANOYW4CVVLSRD4ZVANCNFSM4T6GYIWA
.

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/boringproxy/boringproxy/issues/17#issuecomment-731773094, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AONDJP6X5T7QBHJ6DNNRXYLSRE343ANCNFSM4T6GYIWA.

Sorry, my response was a question, just a really long one with bad grammar.
I'm still trying to understand your goal.
Can you share the name of the software you're trying to proxy?
On Sun, Nov 22, 2020, 9:45 AM voarsh2<EMAIL_ADDRESS>wrote:

I suppose that makes sense.
Other alternative is to disable 443 for the software I am using and just
use port 80. Not feasible long term.
Also, NGROK (self hosted) doesn't support this. But I have no problems
with paid NGROK. 😄
Could this be sorted?

From: Anders Pitman<EMAIL_ADDRESS>Sent: 22 November 2020 16:29
To: boringproxy/boringproxy<EMAIL_ADDRESS>Cc: voarsh2<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [boringproxy/boringproxy] https issues (#17)
Ah ok. So you have your own TLS cert for test.example.com and you want
boringproxy to just pass through (essentially being an SNI proxy) to let
your server handle TLS, ie end-to-end encryption like ngrok TLS tunnels?
On Sun, Nov 22, 2020, 5:03 AM voarsh2<EMAIL_ADDRESS>wrote:

Domain: test.example.com
Client Address: <IP_ADDRESS>
Port: 443
It should be loading 443 securely, but the application thinks http is
being used.
Port 80 loads fine (which is a different application.

From: Anders Pitman<EMAIL_ADDRESS>Sent: 22 November 2020 08:35
To: boringproxy/boringproxy<EMAIL_ADDRESS>Cc: voarsh2<EMAIL_ADDRESS>Author <
<EMAIL_ADDRESS>
Subject: Re: [boringproxy/boringproxy] https issues (#17)
I'm not sure I understand what's happening. What are your values for
Domain, Client Address, and Client Port?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub<

https://github.com/boringproxy/boringproxy/issues/17#issuecomment-731715761>,

or unsubscribe<

https://github.com/notifications/unsubscribe-auth/AONDJPZ7PTV3ZK2MKOPSX7DSRDEMJANCNFSM4T6GYIWA

.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<
https://github.com/boringproxy/boringproxy/issues/17#issuecomment-731737331>,

or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/AB3VHKGU7AEQUANOYW4CVVLSRD4ZVANCNFSM4T6GYIWA>

.

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub<
https://github.com/boringproxy/boringproxy/issues/17#issuecomment-731773094>,
or unsubscribe<
https://github.com/notifications/unsubscribe-auth/AONDJP6X5T7QBHJ6DNNRXYLSRE343ANCNFSM4T6GYIWA>.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/boringproxy/boringproxy/issues/17#issuecomment-731775229,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AB3VHKEKAIOI7BQRS6GFHUDSRE5ZHANCNFSM4T6GYIWA
.

OK.
With NGROK, I can do a session with HTTPS, it loads a HTTPS port - that's fine.
If I use self hosted NGROK - 3 + years ago, I get the same error I mentioned above when loading 443 - I assume it tries http first, then redirects to https?
And again, the same issue with boringproxy.

From: Anders Pitman<EMAIL_ADDRESS>Sent: 22 November 2020 16:58
To: boringproxy/boringproxy<EMAIL_ADDRESS>Cc: voarsh2<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [boringproxy/boringproxy] https issues (#17)
Sorry, my response was a question, just a really long one with bad grammar.
I'm still trying to understand your goal.
Can you share the name of the software you're trying to proxy?
On Sun, Nov 22, 2020, 9:45 AM voarsh2<EMAIL_ADDRESS>wrote:

I suppose that makes sense.
Other alternative is to disable 443 for the software I am using and just
use port 80. Not feasible long term.
Also, NGROK (self hosted) doesn't support this. But I have no problems
with paid NGROK. 😄
Could this be sorted?

From: Anders Pitman<EMAIL_ADDRESS>Sent: 22 November 2020 16:29
To: boringproxy/boringproxy<EMAIL_ADDRESS>Cc: voarsh2<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [boringproxy/boringproxy] https issues (#17)
Ah ok. So you have your own TLS cert for test.example.com and you want
boringproxy to just pass through (essentially being an SNI proxy) to let
your server handle TLS, ie end-to-end encryption like ngrok TLS tunnels?
On Sun, Nov 22, 2020, 5:03 AM voarsh2<EMAIL_ADDRESS>wrote:

Domain: test.example.com
Client Address: <IP_ADDRESS>
Port: 443
It should be loading 443 securely, but the application thinks http is
being used.
Port 80 loads fine (which is a different application.

From: Anders Pitman<EMAIL_ADDRESS>Sent: 22 November 2020 08:35
To: boringproxy/boringproxy<EMAIL_ADDRESS>Cc: voarsh2<EMAIL_ADDRESS>Author <
<EMAIL_ADDRESS>
Subject: Re: [boringproxy/boringproxy] https issues (#17)
I'm not sure I understand what's happening. What are your values for
Domain, Client Address, and Client Port?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub<

https://github.com/boringproxy/boringproxy/issues/17#issuecomment-731715761>,

or unsubscribe<

https://github.com/notifications/unsubscribe-auth/AONDJPZ7PTV3ZK2MKOPSX7DSRDEMJANCNFSM4T6GYIWA

.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<
https://github.com/boringproxy/boringproxy/issues/17#issuecomment-731737331>,

or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/AB3VHKGU7AEQUANOYW4CVVLSRD4ZVANCNFSM4T6GYIWA>

.

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub<
https://github.com/boringproxy/boringproxy/issues/17#issuecomment-731773094>,
or unsubscribe<
https://github.com/notifications/unsubscribe-auth/AONDJP6X5T7QBHJ6DNNRXYLSRE343ANCNFSM4T6GYIWA>.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/boringproxy/boringproxy/issues/17#issuecomment-731775229,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AB3VHKEKAIOI7BQRS6GFHUDSRE5ZHANCNFSM4T6GYIWA
.

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/boringproxy/boringproxy/issues/17#issuecomment-731777074, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AONDJP44XYJM5NALKFWBM3DSRE7NFANCNFSM4T6GYIWA.

Can you show me an example of the ngrok command that works? I need to make
sure I understand what features you're using before I can say whether we
can fix this or not.
On Sun, Nov 22, 2020, 10:01 AM voarsh2<EMAIL_ADDRESS>wrote:

OK.
With NGROK, I can do a session with HTTPS, it loads a HTTPS port - that's
fine.
If I use self hosted NGROK - 3 + years ago, I get the same error I
mentioned above when loading 443 - I assume it tries http first, then
redirects to https?
And again, the same issue with boringproxy.

From: Anders Pitman<EMAIL_ADDRESS>Sent: 22 November 2020 16:58
To: boringproxy/boringproxy<EMAIL_ADDRESS>Cc: voarsh2<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [boringproxy/boringproxy] https issues (#17)
Sorry, my response was a question, just a really long one with bad
grammar.
I'm still trying to understand your goal.
Can you share the name of the software you're trying to proxy?
On Sun, Nov 22, 2020, 9:45 AM voarsh2<EMAIL_ADDRESS>wrote:

I suppose that makes sense.
Other alternative is to disable 443 for the software I am using and just
use port 80. Not feasible long term.
Also, NGROK (self hosted) doesn't support this. But I have no problems
with paid NGROK. 😄
Could this be sorted?

From: Anders Pitman<EMAIL_ADDRESS>Sent: 22 November 2020 16:29
To: boringproxy/boringproxy<EMAIL_ADDRESS>Cc: voarsh2<EMAIL_ADDRESS>Author <
<EMAIL_ADDRESS>Subject: Re: [boringproxy/boringproxy] https issues (#17)
Ah ok. So you have your own TLS cert for test.example.com and you want
boringproxy to just pass through (essentially being an SNI proxy) to let
your server handle TLS, ie end-to-end encryption like ngrok TLS tunnels?
On Sun, Nov 22, 2020, 5:03 AM voarsh2<EMAIL_ADDRESS>wrote:

Domain: test.example.com
Client Address: <IP_ADDRESS>
Port: 443
It should be loading 443 securely, but the application thinks http is
being used.
Port 80 loads fine (which is a different application.

From: Anders Pitman<EMAIL_ADDRESS>Sent: 22 November 2020 08:35
To: boringproxy/boringproxy<EMAIL_ADDRESS>Cc: voarsh2<EMAIL_ADDRESS>Author <
<EMAIL_ADDRESS>
Subject: Re: [boringproxy/boringproxy] https issues (#17)
I'm not sure I understand what's happening. What are your values for
Domain, Client Address, and Client Port?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub<

https://github.com/boringproxy/boringproxy/issues/17#issuecomment-731715761>,

or unsubscribe<

https://github.com/notifications/unsubscribe-auth/AONDJPZ7PTV3ZK2MKOPSX7DSRDEMJANCNFSM4T6GYIWA

.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<

https://github.com/boringproxy/boringproxy/issues/17#issuecomment-731737331>,

or unsubscribe
<

https://github.com/notifications/unsubscribe-auth/AB3VHKGU7AEQUANOYW4CVVLSRD4ZVANCNFSM4T6GYIWA>

.

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub<

https://github.com/boringproxy/boringproxy/issues/17#issuecomment-731773094>,

or unsubscribe<

https://github.com/notifications/unsubscribe-auth/AONDJP6X5T7QBHJ6DNNRXYLSRE343ANCNFSM4T6GYIWA>.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<
https://github.com/boringproxy/boringproxy/issues/17#issuecomment-731775229>,

or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/AB3VHKEKAIOI7BQRS6GFHUDSRE5ZHANCNFSM4T6GYIWA>

.

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub<
https://github.com/boringproxy/boringproxy/issues/17#issuecomment-731777074>,
or unsubscribe<
https://github.com/notifications/unsubscribe-auth/AONDJP44XYJM5NALKFWBM3DSRE7NFANCNFSM4T6GYIWA>.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/boringproxy/boringproxy/issues/17#issuecomment-731777467,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AB3VHKAOIRQGK2BBPOXJYKLSRE7XNANCNFSM4T6GYIWA
.

Hi again.
I am hosting YunoHost.
It redirects everything to 443/https.
NGROK (self hosted, not the cloud version) does http and redirects to https... I'm not quite sure... NGROK cloud is fine with YunoHost.
Short term I edited my Nginx to not serve on 443, but only on port 80.
My problem is solved.
I don't know why NGROK (self-hosted) and boringproxy give me the http to https error.

From: Anders Pitman<EMAIL_ADDRESS>Sent: 22 November 2020 17:39
To: boringproxy/boringproxy<EMAIL_ADDRESS>Cc: voarsh2<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [boringproxy/boringproxy] https issues (#17)
Can you show me an example of the ngrok command that works? I need to make
sure I understand what features you're using before I can say whether we
can fix this or not.
On Sun, Nov 22, 2020, 10:01 AM voarsh2<EMAIL_ADDRESS>wrote:

OK.
With NGROK, I can do a session with HTTPS, it loads a HTTPS port - that's
fine.
If I use self hosted NGROK - 3 + years ago, I get the same error I
mentioned above when loading 443 - I assume it tries http first, then
redirects to https?
And again, the same issue with boringproxy.

From: Anders Pitman<EMAIL_ADDRESS>Sent: 22 November 2020 16:58
To: boringproxy/boringproxy<EMAIL_ADDRESS>Cc: voarsh2<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [boringproxy/boringproxy] https issues (#17)
Sorry, my response was a question, just a really long one with bad
grammar.
I'm still trying to understand your goal.
Can you share the name of the software you're trying to proxy?
On Sun, Nov 22, 2020, 9:45 AM voarsh2<EMAIL_ADDRESS>wrote:

I suppose that makes sense.
Other alternative is to disable 443 for the software I am using and just
use port 80. Not feasible long term.
Also, NGROK (self hosted) doesn't support this. But I have no problems
with paid NGROK. 😄
Could this be sorted?

From: Anders Pitman<EMAIL_ADDRESS>Sent: 22 November 2020 16:29
To: boringproxy/boringproxy<EMAIL_ADDRESS>Cc: voarsh2<EMAIL_ADDRESS>Author <
<EMAIL_ADDRESS>Subject: Re: [boringproxy/boringproxy] https issues (#17)
Ah ok. So you have your own TLS cert for test.example.com and you want
boringproxy to just pass through (essentially being an SNI proxy) to let
your server handle TLS, ie end-to-end encryption like ngrok TLS tunnels?
On Sun, Nov 22, 2020, 5:03 AM voarsh2<EMAIL_ADDRESS>wrote:

Domain: test.example.com
Client Address: <IP_ADDRESS>
Port: 443
It should be loading 443 securely, but the application thinks http is
being used.
Port 80 loads fine (which is a different application.

From: Anders Pitman<EMAIL_ADDRESS>Sent: 22 November 2020 08:35
To: boringproxy/boringproxy<EMAIL_ADDRESS>Cc: voarsh2<EMAIL_ADDRESS>Author <
<EMAIL_ADDRESS>
Subject: Re: [boringproxy/boringproxy] https issues (#17)
I'm not sure I understand what's happening. What are your values for
Domain, Client Address, and Client Port?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub<

https://github.com/boringproxy/boringproxy/issues/17#issuecomment-731715761>,

or unsubscribe<

https://github.com/notifications/unsubscribe-auth/AONDJPZ7PTV3ZK2MKOPSX7DSRDEMJANCNFSM4T6GYIWA

.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<

https://github.com/boringproxy/boringproxy/issues/17#issuecomment-731737331>,

or unsubscribe
<

https://github.com/notifications/unsubscribe-auth/AB3VHKGU7AEQUANOYW4CVVLSRD4ZVANCNFSM4T6GYIWA>

.

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub<

https://github.com/boringproxy/boringproxy/issues/17#issuecomment-731773094>,

or unsubscribe<

https://github.com/notifications/unsubscribe-auth/AONDJP6X5T7QBHJ6DNNRXYLSRE343ANCNFSM4T6GYIWA>.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<
https://github.com/boringproxy/boringproxy/issues/17#issuecomment-731775229>,

or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/AB3VHKEKAIOI7BQRS6GFHUDSRE5ZHANCNFSM4T6GYIWA>

.

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub<
https://github.com/boringproxy/boringproxy/issues/17#issuecomment-731777074>,
or unsubscribe<
https://github.com/notifications/unsubscribe-auth/AONDJP44XYJM5NALKFWBM3DSRE7NFANCNFSM4T6GYIWA>.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/boringproxy/boringproxy/issues/17#issuecomment-731777467,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AB3VHKAOIRQGK2BBPOXJYKLSRE7XNANCNFSM4T6GYIWA
.

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/boringproxy/boringproxy/issues/17#issuecomment-731782565, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AONDJP6TJCCJ3NQMJYGVUATSRFEEPANCNFSM4T6GYIWA.

(you use email, I edited my comment with a cloud NGROK command that works in my case)

Ok, I think I have a pretty good idea of what's happening.
Relevant ngrok docs are here: https://ngrok.com/docs#http-local-https
And yunohost docs here: https://yunohost.org/#/certificate
Looks like when ngrok is run with the https:// scheme or on port 443, it uses TLS and just accepts whatever cert the upstream server provides.
For its part, yunohost defaults to a self signed certificate. I'm guessing this is what you have unless you've gone through the steps to get your own cert.
Good news is it should be pretty easy to fix and may even work already. Can you try setting the boringproxy Client Address to yuno.example.com and see what happens? If that doesn't work try https://yuno.example.com.

I'm not sure where nginx is coming into play for you. Can you describe where it fits in your architecture? That could further complicate things.

Wait, this actually probably won't work yet. I'm going to edit my previous comment to hopefully avoid confusion.

Ok, I think I have a pretty good idea of what's happening.
Cool 😎

Looks like when ngrok is run with the https:// scheme or on port 443, it uses TLS and just accepts whatever cert the upstream server provides.

Sounds right, I didn't generate my own. It's self signed.

Looks like when ngrok is run with the https:// scheme or on port 443, it uses TLS and just accepts whatever cert the upstream server provides.

Uh huh. Although, I think NGROK has their own certificate as well.

Wait, this actually probably won't work yet. I'm going to edit my previous comment to hopefully avoid confusion

I'm hoping it can be sorted though. NGROK is expensive!
Just curious, do you think running:
test.example.com
and: yuno.example.com (two separate sites)
Will work with boringproxy, in this fashion?
YunoHost handles multiple domains.

A bit off topic, but I am looking to bring my £35 a month hosting, in-house. And I am set to find a proxy that works for all my software.
NGROK... works for everything it seems. But $15 a month, only 5 domains?!
I've reached the limit.
lynk.sh seems to not really work when you have multiple domains.
I'm hoping boringproxy works for most of my use cases.

Alright I have a fix in that basically mimics ngrok's behavior. If you put https:// in front of the Client Address, it should work. So for example: https://<IP_ADDRESS>. This is a bit of a hack. Eventually I'll probably add something to the UI such as a Client Use HTTPS checkbox.
I drafted a new release for the fix: https://github.com/boringproxy/boringproxy/releases/tag/v0.3.0
You only need to update your client, since there haven't been any breaking changes to the server since the last release.

A bit off topic, but I am looking to bring my £35 a month hosting, in-house. And I am set to find a proxy that works for all my software.
NGROK... works for everything it seems. But $15 a month, only 5 domains?!
I've reached the limit.
lynk.sh seems to not really work when you have multiple domains.
I'm hoping boringproxy works for most of my use cases.

Ok, I think I have a pretty good idea of what's happening.
Cool sunglasses

Looks like when ngrok is run with the https:// scheme or on port 443, it uses TLS and just accepts whatever cert the upstream server provides.

Sounds right, I didn't generate my own. It's self signed.

Looks like when ngrok is run with the https:// scheme or on port 443, it uses TLS and just accepts whatever cert the upstream server provides.

Uh huh. Although, I think NGROK has their own certificate as well.

Wait, this actually probably won't work yet. I'm going to edit my previous comment to hopefully avoid confusion

I'm hoping it can be sorted though. NGROK is expensive!
Just curious, do you think running:
test.example.com
and: yuno.example.com (two separate sites)
Will work with boringproxy, in this fashion?
YunoHost handles multiple domains.

Alright I have a fix in that basically mimics ngrok's behavior. If you put https:// in front of the Client Address, it should work. So for example: https://<IP_ADDRESS>. This is a bit of a hack. Eventually I'll probably add something to the UI such as a Client Use HTTPS checkbox.

I will give it some testing.
About my question:
With YunoHost on running on Debian as a webserver:
if I have say:
yuno.example.com served on 443
test.example.com
Will these sites be served their appropriate content based on their domain/url?

Uh huh. Although, I think NGROK has their own certificate as well.

Yep. They let you choose whether to use their certificate, use the upstream cert (yunohost self-signed), or use a custom cert which the client uses to enable end-to-end encryption for upstreams that don't support HTTPS.

Just curious, do you think running:
test.example.com
and: yuno.example.com (two separate sites)
Will work with boringproxy, in this fashion?
YunoHost handles multiple domains.

Should work. I do this myself. It is a bit clunky though. You just have to create a different tunnel for each domain, and point them all to the same upstream address/port.

A bit off topic, but I am looking to bring my £35 a month hosting, in-house. And I am set to find a proxy that works for all my software.
NGROK... works for everything it seems. But $15 a month, only 5 domains?!
I've reached the limit.
lynk.sh seems to not really work when you have multiple domains.
I'm hoping boringproxy works for most of my use cases.

I have some thoughts on this. If you open a new issue with a title like "boringproxy vs ngrok" we can move that conversation there.

This sounds silly but I'm on Debian, 64bit and I can't run this:
https://github.com/boringproxy/boringproxy/releases/download/v0.3.0/boringproxy-linux-arm64
cannot execute binary file: Exec format error
4.19.0-9-amd64 #1 SMP Debian 4.19.118-2+deb10u1 (2020-06-07) x86_64 GNU/Linux

You probably need the amd64 not arm64. Sorry the names really are too
similar  I'm using the golang names but I can probably come up with
something less ambiguous.
On Sun, Nov 22, 2020, 4:13 PM voarsh2<EMAIL_ADDRESS>wrote:

This sounds silly but I'm on Debian, 64bit and I can't run this:
https://github.com/boringproxy/boringproxy/releases/download/v0.3.0/boringproxy-linux-arm64
cannot execute binary file: Exec format error
4.19.0-9-amd64 #1 https://github.com/boringproxy/boringproxy/pull/1 SMP
Debian 4.19.118-2+deb10u1 (2020-06-07) x86_64 GNU/Linux
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/boringproxy/boringproxy/issues/17#issuecomment-731863499,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AB3VHKHSMBUGEX6V6QR2NS3SRGLKRANCNFSM4T6GYIWA
.

Just tried this:
https://github.com/boringproxy/boringproxy/releases/download/v0.3.0/boringproxy-linux-amd64 - worked. Thanks.
I tried the update.
I got redirected to https://localhost:39113/?
[cid:5f6fe83d-deb0-48c1-aa04-aa8c4da126fa]

From: Anders Pitman<EMAIL_ADDRESS>Sent: 22 November 2020 23:43
To: boringproxy/boringproxy<EMAIL_ADDRESS>Cc: voarsh2<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [boringproxy/boringproxy] https issues (#17)
You probably need the amd64 not arm64. Sorry the names really are too
similar I'm using the golang names but I can probably come up with
something less ambiguous.
On Sun, Nov 22, 2020, 4:13 PM voarsh2<EMAIL_ADDRESS>wrote:

This sounds silly but I'm on Debian, 64bit and I can't run this:
https://github.com/boringproxy/boringproxy/releases/download/v0.3.0/boringproxy-linux-arm64
cannot execute binary file: Exec format error
4.19.0-9-amd64 #1 https://github.com/boringproxy/boringproxy/pull/1 SMP
Debian 4.19.118-2+deb10u1 (2020-06-07) x86_64 GNU/Linux
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/boringproxy/boringproxy/issues/17#issuecomment-731863499,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AB3VHKHSMBUGEX6V6QR2NS3SRGLKRANCNFSM4T6GYIWA
.

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/boringproxy/boringproxy/issues/17#issuecomment-731867482, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AONDJP6NQYCDXOP6YL4Y7L3SRGO3XANCNFSM4T6GYIWA.

It's really not possible for me to guess what's wrong unless I try to run younohost myself, which I don't currently have the time to do. The key thing is to make sure you have younohost properly configured to run behind a reverse proxy. If you've confirmed that it works behind nginx or Caddy, but it still doesn't work behind boringproxy, I can take a deep look at it.

I'm not familiar with setting up NGINX for reverse proxy all that much.... 😕
Why NGROK works for YUNOHOST without extra fiddling or investigation as to why (after your recent change), I do not know.
FYI, setup takes 5 minutes of pressing enter and a key keys in a VM, few minutes to download and a few minutes to setup.
I'll let you know if I personally make any progress.

From: Anders Pitman<EMAIL_ADDRESS>Sent: 23 November 2020 03:54
To: boringproxy/boringproxy<EMAIL_ADDRESS>Cc: voarsh2<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [boringproxy/boringproxy] https issues (#17)
It's really not possible for me to guess what's wrong unless I try to run younohost myself, which I don't currently have the time to do. The key thing is to make sure you have younohost properly configured to run behind a reverse proxy. If you've confirmed that it works behind nginx or Caddy, but it still doesn't work behind boringproxy, I can take a deep look at it.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/boringproxy/boringproxy/issues/17#issuecomment-731913422, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AONDJP23V5GJU6KO7VLKVPTSRHMHNANCNFSM4T6GYIWA.

I'm not sure if you're familiar with Plesk.
But:
test.host.com supposedley available at a local LAN IP: E.G. https://<IP_ADDRESS>/
On the box itself, I can visit at: https://<IP_ADDRESS>/
NGROK tries to use localhost, which I can't seem to override... Plesk/NGINX only listen at the LAN IP (or public IP), but I'm behind a NAT, that's not going to fly.
Anyway, I can't seem to get this working on boringproxy:

Client Address should never start with http://. Only https:// or nothing is valid. Like I said, adding https:// is a bit of a hack.

Failed to get CERT

-- Update.
So, this is using VIRTUALMIN (hosting panel)
If I visit localhost on the VM, I get the apache page...

But, this is NOT the site I selected to load. It seems it's just loading "localhost" but not picking up the site I want to load?

This is what should be loading from reese.hosttweb.com

Just an update:
I managed to get reese.hosttweb.com to load by doing the following:
In virtualmin, set the IP for the "domain" to <IP_ADDRESS>.
Make boringproxy:
reese.hosttweb.com - client - client address: https://<IP_ADDRESS> and PORT :443
I assume... I'll need to create a new fake "local" ip to route any other websites I want available? Since the domain itself doesn't distinguish what site to load?

Turns out the real solution is:
Editing Virtual Host Configuration Files
https://docs.plesk.com/en-US/obsidian/advanced-administration-guide-linux/virtual-hosts-configuration/virtual-hosts-and-hosting-types/virtual-host-configuration-files.72064/
https://www.reddit.com/r/homelab/comments/jzog4u/ngrok_pesk_server_listen_to_lan_ip_and_serve/gddng7t/?context=3
https://ngrok.com/docs#http-host-header
NGROK handles domain head rewrites to help the webserver decide what to show.
I think, to make my life easier I will stick with VIRTUALMIN, and it's free! It's trying to cut down my costs and I've used Plesk for my hosting (on a VPS) for years.

New problem.
Any idea why test.example.com would work fine, but a subfolder isn't pointing back to the same place?
E.G. test.example.com loads the index page fine - but test.example.com/test/ then tries to redirect to http://localhost:33335/?

I've spoken to a few "apache" experts, and they don't think it's a virtualmin (control panel) issue.
I'm stumped.
test.example.com loads on <IP_ADDRESS>
test.example.com/wow/ loads localhost
test.example.com/wow/index.php loads as expected - why is index.php needed (this is why I thought it would be the control panel)
Perhaps boringproxy is interfering in some way?

It gets even stranger:
https://localdes.hosttweb.com/wonder/reese
Goes to: http://localhost:34875/wonder/reese/
https://localdes.hosttweb.com/wonder/reese/
is fine.
The difference is "/"
Any thoughts @anderspitman ?

Everyone I've spoken to about the issue thinks it's an issue with the proxy sending LOCALHOST:(port)
https://github.com/boringproxy/boringproxy/blob/master/boringproxy.go#L158
Possibly this line?

Hi @voarsh2, thanks for your continued testing and attempts to get boringproxy working for you.
You've mentioned a lot of different software, and it's very difficult to know where the problems could be. My goal is for boringproxy to support major software like Nextcloud, Plex, Jellyfin, etc. Unfortunately there will be a long tail of software that I simply don't have the bandwidth to debug. In general, if a service works behind nginx or Caddy, it should work behind boringproxy. Now, there are likely to be some bugs, but I can't fix them myself unless they pop up in something like Nextcloud.
So I guess what I'm saying is boringproxy probably isn't ready for non-developers yet. To fix your issues someone would probably have to dig into the boringproxy code and do real debugging on it.
If you can reproduce any of your problems on a more popular piece of software, I can dig into it more. I would say younohost qualifies. Are you still having issues with that?

Also, I see that you posted some screenshots with your boringproxy address and tokens visible. If you haven't already, you should open boringproxy_db.json and replace the token, otherwise anyone who reads this thread can get admin access to your boringproxy instance.

I am testing on apache, basic apache...... that's not popular enough?
VIRTUALMIN is a hosting control panel like Plesk.
I achieved a very hacky .htacces solution by appending "/" to the proxy.
So far I have had some success of rewriting the URL to include "/" to the proxy.

If you haven't already, you should open boringproxy_db.json and replace the token, otherwise anyone who reads this thread can get admin access to your boringproxy instance.
Thanks - I'll do that.

I can devote some time to trying Apache. The others I cannot. I will need the following information:

Where is boringproxy running (VPS, home server with port forwarding, etc)?
Where is Apache running (VPS, home server, raspberry pi, etc)?
Are they on the same machine?
How are you running Apache (Docker image, version number, etc)?
Anything else you're changing, such as Apache config, adding php, etc.

Where is boringproxy running (VPS, home server with port forwarding, etc)?
VPS server for server component
Where is Apache running (VPS, home server, raspberry pi, etc)?
VIRTUALMIN/Apache is on a VM on my local machine.

Are they on the same machine?
Technically... yes
How are you running Apache (Docker image, version number, etc)?
VIRTUALMIN apache
Anything else you're changing, such as Apache config, adding php, etc.
Default apache settings that work flawlessly out of the box for a normal public IP setup.

(I might edit this post with more correct/up to date info.)

We need to cut VIRTUALMIN out of the picture and debug one thing at a time. Have you tried vanilla Apache for hosting a simple static site and proved to yourself that it doesn't work behind boringproxy, even after following a guide such as this (replace nginx with boringproxy)? https://www.atlantic.net/vps-hosting/how-to-setup-nginx-as-a-reverse-proxy-for-apache-on-ubuntu-18-04-vps/

I'll see what I can do.
The project I am working on has forced me to use something that works for my use case.
I did the same thing with NGROK and it's fine - not so helpful for you.
Perhaps when I am migrating more projects inhouse, I will try boringproxy again. :)

I'm a big fan of using what works, so sounds like ngrok is right for you! I'll leave this open for now. Feel free to drop back in if you get more information.

I didn't want to open a new issue just yet.
Nextcloud is running on <IP_ADDRESS>, port 443.
I do:
domain - Client Address (https://<IP_ADDRESS>) - port: 443

Not sure why this isn't working as I think it should?

I didn't want to open a new issue just yet.
Nextcloud is running on <IP_ADDRESS>, port 443.
I do:
domain - Client Address (https://<IP_ADDRESS>) - port: 443

Not sure why this isn't working as I think it should?


How to extend & rewrite element?

Hi , I got a problem about element template extend & rewrite. It just likes:
    <polymer-element name="gaea-scaffold" attributes="username">
        <template>
            this is {{ username }}
            <content><!-- I wanna write content here!!! --></content>
        </template>
    </polymer-element>
    ...
    <gaea-scaffold>
        <!-- how to rewrite the content??? -->
    </gaea-scaffold>

Thks.

Please ask development question on StackOverflow. Closing as this isn't a valid issue.

Fine, thanks.


Extract syslog client

I'm currently migrating from highlogger to bunyan as you propose on the readme, but I've run into sort of a blocker:
There is no good syslog support.
https://github.com/mcavage/node-bunyan-syslog looks sort of dead and does not compile anymore, so I wanted to proceed to build my own adapter.
However, https://github.com/strongloop/modern-syslog and https://github.com/schamane/node-syslog both do not support custom hosts and ports, but I need to connect to syslog on a port other than 514, for example to set up my own mock server for integration tests so that it doesn't clash with the syslog that is installed on my system.
So the question is, would you be willing to release your syslog client as a separate library so it can be integrated with bunyan? So far I've had no complaints about the performance and I don't see why we'd necessarily need a native C version of it like all the other implementations.

I just found https://github.com/paulgrove/node-syslog-client and https://github.com/myndzi/syslog2
Maybe those will be of help too.

Sorry for the late response, I've kind of missed your issue. If you haven't found a fix this is what I'm currently using instead of highlogger for the better part of the year:

"bunyan": "^1.8.12"
"bunyan-syslog-udp": "^0.1.0"


use with federation

Hello,
Just curious if it was possible to use something like this with a federation, i.e. the AAF. However am finding it difficult to find information as required.
I don't care (or want) auto discovery, just something that will let me authenticate against specific IDPs that can be included easily in a Docker container. The only recommended solution is to use the Apache shib module, which is a lot of overhead for a docker container and gets confused easily with a Docker environment (been there done that).
As far as I can see however, the AAF requires end points and this plugin doesn't support them. So maybe that means this won't work as is?
In particular, it looks like "Assertion Consuming Service (Artifact)" is a required value, but samly only has a "Assertion Consuming Service (Post)".
There are a number of over end points, am hoping that they might be optional.
Regards

I am guessing these values should be correct - apart from the host name that is. Maybe I could use the same value for both the "Assertion Consuming Service"?

Sorry. Artifact resolution is not supported in Samly.

I don't know if there is enough interest for this. If there is, it might be possible to support SP initiated POST/REDIRECT followed by Artifact resolution from SP to IDP. Please open an issue in the esaml repo. Samly relies on esaml for the core SAML interaction.

Ok, thanks. Will look at filing a bug report against esaml - thanks for the link.
Are you able to give any good references to documentation on what Artifact resolution is? I am reading stuff that Google found but not really understanding any of it. Maybe I need to be more awake...

https://github.com/handnot2/esaml/issues/10. Feel free to close this bug report.


thorium bug report

video flickering with enabled thorium refresh while watching (youtube, etc.)

@DjsProject Since this is an upstream thing, and Thorium refresh 2023 is still in beta, I'm not gonna devote effort to this. If it still happens after CR23 is the default, then you can file a new issue.


[Menu] Add Tabular Variations For All Directions

Hi,
Would it be possible to have stacked/vertical tabs?
Any help would be appreciated.

I've added top and left, in my books these are the only sensible positions w/r/t user experience.

I've added `right

I've added right tabular and  bottom tabular menus in next release.


User lacks permission to update ActorDelta

When I check "Auto apply damages" in module configuration and I roll an attack that does damage and click on damage button in the chat window, I get the error popup message "User XXX lacks permission to update ActorDelta [YYYY] in parent token [ZZZZ]". The dice damage is rolled but the result does not apply on the target's HP.
Here are the traces in the log.
User XXX lacks permission to update ActorDelta [UyzKltXZE1L6VJ8t] in parent Token [J2yxU0rd05FnlHu3] foundry.js:68326:78
fetch foundry.js:68326
notify foundry.js:68223
error foundry.js:68260
_handleError foundry.js:3468
dispatch foundry.js:3450
value socket.js:532
value socket.js:459
emit index.mjs:136
value manager.js:207
Uncaught (in promise) Error: User XXX lacks permission to update ActorDelta [UyzKltXZE1L6VJ8t] in parent Token [J2yxU0rd05FnlHu3]
[No packages detected]
This error message does not appear when I uncheck  "Auto apply damages" in module configuration

What is your user role?

I'm experiencing the same issue. Did not notice it when I was doing my testing logged in as Gamemaster, but tonight when I had all my players logged in for session zero test they all had this issue. I just duplicated it on my own machine logged in as a test player. "Player" is the role in all cases. Is there some permission I need to set? Letting players update tokens did not do the trick.

To be clear, damage is applied correctly to owned tokens, but players vs other players or NPC tokens throws that error

I have to think it over how to fix it. Damage apply code part should run as GM so socketlib module  or using Foundry sockets could be the solution.

I have heard the Midi Quality of Life module for 5e does it that way. Maybe
you could peek at their code?
On Sat, Jan 6, 2024 at 2:42 AM sasquach45932 @.***>
wrote:

I have to think it over how to fix it. Damage apply code part should run
as GM so socketlib module or using Foundry sockets could be the solution.
—
Reply to this email directly, view it on GitHub
https://github.com/sasquach45932/dcc-qol/issues/6#issuecomment-1879634018,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFPN3CAVY6GWC63S2COZUTYNETCHAVCNFSM6AAAAABBMTQM7CVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNZZGYZTIMBRHA
.
You are receiving this because you commented.Message ID:
@.***>

Please install manually with the following URL and test it. Let me know the result.

I have tested this V13. It works. Great work !

I just tested it via the URL you linked (show as version 0.0.13) and while I no longer see the error notification, the damage is not still not being applied when I log in as a player and attack an NPC. When logged in as Gamemaster, everything works as expected, no problem. Wondering how it is that eric had a different result? is there a cache I need to flush or something?

Gamemaster needs to be connected as damage apply runs on his/her client only using sockets.

Fixed in 0.13

Fixed in 0.13


GEP: TLSRoute

Although TLSRoute was created prior to GEPs, we are retroactively creating this issue to track the status of this resource.

I would love it if the TLSRoute were part of the standard offerings rather than the experimental offerings. Right now we can't use the managed Gateway API in GKE because of this.

I think that TLSRoute just needs more conformance tests to be graduated. @robscott ?

@robscott @youngnick I propose that we make no changes to the TLSRoute at the moment.  Do we still need a GEP document if that is the case?

 We currently don't have any GEP documenting what TLSRoute is actually for. Feels like maybe we could use that going forward? @robscott, @shaneutt, any thoughts?

We have a deferred state which really seems to capture where we are at with this one. I'm in favor of marking it deferred for now so people understand that there's simply no motion on it. I would also be in favor of us adding a process so that deferred things eventually get deprecated if nobody comes along to pull them back out of deferred, as we have limited bandwidth and we're not serving our community or our users best if we have several bits that are all hanging around in various states of decay.

We have a deferred state which really seems to capture where we are at with this one. I'm in favor of marking it deferred for now so people understand that there's simply no motion on it. I would also be in favor of us adding a process so that deferred things eventually get deprecated if nobody comes along to pull them back out of deferred, as we have limited bandwidth and we're not serving our community or our users best if we have several bits that are all hanging around in various states of decay.

+1. We may probably want to use the same approach for https://github.com/kubernetes-sigs/gateway-api/issues/2645 and https://github.com/kubernetes-sigs/gateway-api/issues/2644?

+1. We may probably want to use the same approach for #2645 and #2644?

+1

We have a deferred state which really seems to capture where we are at with this one. I'm in favor of marking it deferred for now so people understand that there's simply no motion on it. I would also be in favor of us adding a process so that deferred things eventually get deprecated if nobody comes along to pull them back out of deferred, as we have limited bandwidth and we're not serving our community or our users best if we have several bits that are all hanging around in various states of decay.

@shaneutt As of yesterday, @robscott added this to https://github.com/orgs/kubernetes-sigs/projects/20/views/1 because I volunteered to take it on.  It was deferred, but it is no longer deferred.
@youngnick I was hoping, because this is a relatively well documented component, that we could get away with out a GEP.

I'm gathering all the TLSRoute-related issues under an epic issue and I think that as a first step, we need to figure out this one. I quote what @candita wrote here about getting away without a GEP given the current status of the API and our will to promote it in time for 1.2.
What do you think about it?
@robscott @shaneutt @youngnick

After discussing in the Gateway API meeting, we agreed upon creating a simple GEP with the following:

overview of the API
the whys of having it and the differentiators from TCPRoute
answers to the open questions we still have in the API

@candita I'm going to assign myself to the issue and unassign you as we agreed on Slack and in the Gateway API meeting.
/assign
/unassign @candita

@mlavacca we had an inquiry about TLSRoute today (as well as TCPRoute and UDPRoute) with IoT and similar resource form-factor use cases.  E.g. OPC-UA (Industrial IoT ingest of data from machines), and camera/video feed routing.

@mlavacca we had an inquiry about TLSRoute today (as well as TCPRoute and UDPRoute) with IoT and similar resource form-factor use cases. E.g. OPC-UA (Industrial IoT ingest of data from machines), and camera/video feed routing.

Apologies for the terrible delay. I somehow lost track of this message. It's interesting, though. Is it still relevant? In that case, would you be able to provide some additional details about the expectations, etc.?

@mlavacca we had an inquiry about TLSRoute today (as well as TCPRoute and UDPRoute) with IoT and similar resource form-factor use cases. E.g. OPC-UA (Industrial IoT ingest of data from machines), and camera/video feed routing.

Apologies for the terrible delay. I somehow lost track of this message. It's interesting, though. Is it still relevant? In that case, would you be able to provide some additional details about the expectations, etc.?

It's a use case at Red Hat, we have a small form-factor cluster platform that is interested in integrating Gateway API, and asked about TLSRoute and other xRoutes.  You can ignore this.


Cache is most of the time not used

In a concurrency configuration, when repository methods are called from multiples enumerators, we miss the cache most of the time since we do not lock in repository methods.

One approach I've tried in #1001 is to create a new struct methodLocker in repository package that I inject in any repository struct to be able to lock like I'd lock a mutex but with a context attached. The context consist of a string representing a method of the repository.
Example :
type cloudfrontRepository struct {
+	*methodLocker
	client cloudfrontiface.CloudFrontAPI
	cache  cache.Cache
}

func (r *cloudfrontRepository) ListAllDistributions() ([]*cloudfront.DistributionSummary, error) {
	cacheKey := "cloudfrontListAllDistributions"
+	r.Lock(cacheKey)
+	defer r.Unlock(cacheKey)

        // ...

In this snippet, we lock the mutex attached to that method so any concurrent execution of this method will block before requesting the cache for data. WDYT @cloudskiff/engineering ?

We should investigate what repository methods are affected by this concurrency issue and implement a solution only for those methods. As far as I know, when more than one enumerator/details fetcher uses the same method of a repository, that method should lock to avoid this issue to happen. A notable example would be ListAllBuckets and GetBucketLocation of S3 repository used both by 6 enumerators.

I found these enumerators that need the above mechanism:
// AWS

ApiGatewayRestApiEnumerator
ApiGatewayApiKeyEnumerator
ApiGatewayAuthorizerEnumerator

VPCEnumerator
DefaultVPCEnumerator

EC2DefaultNetworkACLEnumerator
EC2NetworkACLEnumerator
EC2NetworkACLRuleEnumerator

EC2RouteTableEnumerator
EC2DefaultRouteTableEnumerator
EC2RouteTableAssociationEnumerator
EC2RouteEnumerator

EC2SubnetEnumerator
EC2DefaultSubnetEnumerator

IamUserEnumerator
IamAccessKeyEnumerator
IamUserPolicyEnumerator
IamUserPolicyAttachmentEnumerator

IamRoleEnumerator
IamRolePolicyEnumerator
IamRolePolicyAttachmentEnumerator

Route53ZoneSupplier
Route53RecordEnumerator

S3BucketEnumerator
S3BucketAnalyticEnumerator
S3BucketInventoryEnumerator
S3BucketMetricsEnumerator
S3BucketNotificationEnumerator
S3BucketPolicyEnumerator

SNSTopicEnumerator
SNSTopicPolicyEnumerator

SQSQueueEnumerator
SQSQueuePolicyEnumerator

VPCSecurityGroupEnumerator
VPCDefaultSecurityGroupEnumerator
VPCSecurityGroupRuleEnumerator

// GCP

GoogleStorageBucketEnumerator
GoogleStorageBucketIamBindingEnumerator

// Azure

AzurermStorageAccountEnumerator
AzurermStorageContainerEnumerator

What do yo think of this kind of API ?
// In the repository
cache.GetAndLock("cacheKey")
defer cache.Unlock("cacheKey")

We do not want to lock for every cache.Get, locking a mutex is quite an expensive syscall and we should avoid to do it every time. That's why I was thinking of a new GetAndLock method.
WDYT @cloudskiff/engineering any thoughts ?

We do not want to lock for every cache.Get, locking a mutex is quite an expensive syscall and we should avoid to do it every time. That's why I was thinking of a new GetAndLock method.

We would remove the Lock inside the cache.Get and add your GetAndLock call for List/Describe/Get that needs it (e.g. the list I wrote above)?

Can we read a map in parallel ? If we can yeah the lock in the actual Get is useless. But we should keep lock in the put. Or either use sync.Map instead.

The Map type is optimized for two common use cases: (1) when the entry for a given key is only ever written once but read many times, as in caches that only grow, or (2) when multiple goroutines read, write, and overwrite entries for disjoint sets of keys. In these two cases, use of a Map may significantly reduce lock contention compared to a Go map paired with a separate Mutex or RWMutex.

From the go documentation ☝🏻

What do yo think of this kind of API ?

That's what I had in mind as well but shouldn't we consider cache already handles its own concurrency and shouldn't bother about repository's concurrency issues ?

What do yo think of this kind of API ?

That's what I had in mind as well but shouldn't we consider cache already handles its own concurrency and shouldn't bother about repository's concurrency issues ?

I think it is OK to have this behavior within the caching logic. It can be a usecase to be able lo lock access to a specific key.
If we want to introduce a global mechanism we need something like that.
But we could totally create a new Locker component that we'll share against our repositories to handle this outside cache logic.

I think it is OK to have this behavior within the caching logic. It can be a usecase to be able lo lock access to a specific key.

I'm good with that. It can be a good thing to have the key locker embedded inside the key/pair value instead of storing the key lockers in another map.

Can we read a map in parallel ? If we can yeah the lock in the actual Get is useless. But we should keep lock in the put. Or either use sync.Map instead.

Concurrent read (read only) is ok. Concurrent write and/or read is not ok. Also the container/list package we use in cache is not thread safe so we cannot drop the global lock.