Server fails when changing a file (and Meteor restarts)

Using the Node or All configuration, when changing a file, the server becomes available. The debug console outputs
Failed to load resource: net::ERR_CONNECTION_REFUSED [http://localhost:3000/sockjs/info?cb=gk3423xfq4]
`

same happens to me using an official meteor demo project using vuejs
git clone https://github.com/chris-visser/meteor-vue-admin
After I changed a file on server side, the server is no more responding on port 3000
This is what is logged in debug console
/usr/local/bin/npm run debug

meteor-vue-admin@ debug /home/bedinsky/git/meteor-vue-admin
MONGO_URL=mongodb://<IP_ADDRESS>:27017/sea-mes meteor run --settings settings.json --inspect-brk=9229
[[[[[ ~/git/meteor-vue-admin ]]]]]
=> Started proxy.

=> [HMR] Dev server listening on port 3003.
W20190719-11:23:46.683(2)? (STDERR) Debugger listening on ws://<IP_ADDRESS>:9229/6e4cbb36-5fd1-4613-a732-574b42913aa0
W20190719-11:23:46.739(2)? (STDERR) For help see https://nodejs.org/en/docs/inspector
W20190719-11:23:46.863(2)? (STDERR) Debugger attached.
=> Started your app.
=> App running at: http://localhost:3000/
=> Server modified -- restarting...

There's a solution here: https://github.com/microsoft/vscode-recipes/issues/112#issuecomment-406493567


Fix the price provider ID for USD coins on Arbitrum

Currently, the fiat value for USD coins on Arbitrum is displayed as zero.
@enriquesouza please update iOS code 👇
https://github.com/vultisig/vultisig-ios/blob/039b56b160cb4a2437f058ce1383e75459493452/VultisigApp/VultisigApp/Stores/TokensStore.swift#L306-L317

Dec 30, 2024
 View reviewed changes

Updated


A template engine suggession in this phase

A template engine for this Codeigniter 4 would be great.

Feature requests on our forum, please. Search there and you will see it has been discussed at length. Our template parser (much improved) is as far as we are going at the moment.


Delay writev calls if we don't have enough data

Since we don't know how deep our boundary actor queue is, we attempt to do immediate writev calls. Unfortunately, with fast networks and proportionally high system call overhead, this can lead to underwhelming throughput. Instead of "nagling", which does the buffering and waiting on the wrong side of the system call, we want to encourage the message queue to run through more messages as quickly as possible. This change simulates hitting the end of the queue at a given point in time (serializing on message mailbox order).
The drawback here is that we incur a scheduling cycle's worth of latency on some applications depending on load and overall computation time. A more ideal runtime would allow us to flush pending writes when the actor is at the end of it's scheduled allotment of message processing. This would allow us to replace the asynchronous callback to flush_pending_writes with a scheduler notification that we've finished our scheduled work and will be rescheduled, giving us a more ideal moment to trigger the send.
The original intention was to pace writes in such a way that we produce smoother and more consistent throughput by using a timer, avoiding then magic threshold number of bytes for immediate writev calls but I found the scheduling to be too inconsistent (timers introduce a round-trip interaction with the timer wheel actor). Again it becomes a very workload dependent issue. The worker's step, core count, and how CPU bound certain code paths may be start playing into the variance you might get making it hard to guarantee that we're free of anomalous timing. The workaround is to avoid pacing and instead focus on getting more data into the buffer at once to ensure we can waste less time doing context switches and end us with packets closer to our MTU.
I need to rerun tests with the new delay mechanism to find a threshold that works best for our applications (minimizing latency lost without throughput gains). I may also allow the threshold to be changed dynamically to turn this effect off for certain applications (using a threshold of 0 should cause us to do immediate writes again).

@strmpnk Are you accounting for the case where the last message sent to a boundary (say, in the case that the worker on the other end will be leaving the cluster) doesn't bring us up to the delay threshold?

Closing this since it's pretty stale at this point.


no slot picture on Slots Status page

any pkg lost or miss? only Slots Status words on this page, no slot status.

Have you run initslot.sh ?

Follow the usage.md,
"2015/03/15 18:30:20 utils.go:46: [error] can't connect to dashboard, please check 'dashboard_addr' is corrent in config file" when running ./add_group.sh and ./initslot.sh
maybe ./start_dashboard.sh should be started first, rigjt?

No slot status in the Slots Status page after the normal startup.
In my opinion, the reason is that slot infos in zk was not fetched. what's the exactly installation step?
$ ./initslot.sh
slots initializing...
{
"msg": "OK",
"ret": 0
}
done
set slot ranges to server groups...
{
"msg": "OK",
"ret": 0
}
{
"msg": "OK",
"ret": 0
}
done

i got the reason, thanks

Which is ?

Some browsers doesn't support this component.


IGNITE-4182: fixed

detailed diagnostics from H2 driver retained as wrapper exception's message.

"why didn't we see the correct error message down the stack?" - because the wrapper exception is itself wrapped, and so is done several times. If user have long enough space to see the full stack trace, he has a chance to see original error message down the stack, but in most cases, the system trims stack trace to reasonable size and deletes the bottom part with the original error message.

The following test always shows the original message "This is my fail!" in the stack trace to me. Even for depth 1000.
    public void testRecursiveException() {
        doTestRecursive(1000);
    }

    private void doTestRecursive(int x) {
        if (x <= 0)
            throw new IllegalStateException("This is my fail!");

        try {
            doTestRecursive(x - 1);
        }
        catch (Exception e) {
            throw new IllegalStateException("Not my fail!", e);
        }
    }

IGNITE-4182 | Resolved
Closing PR, feel free to reopen if needed


docs(readme.developers.md): update the readme content for UMD

update the readme content for UMD

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Fix pickling of conditioned custom gates from OpenQASM 2 import

Summary
The condition of a gate defined by a gate statement in an OpenQASM 2 program was not previously exported as part of its state during pickling, causing pickle roundtrips or deepcopies to lose the condition on the new copy.

Details and comments
Fix #11174.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

3 of 3 (100.0%)  changed or added relevant lines in 1 file are covered.
11 unchanged lines in 3 files lost coverage.
Overall coverage increased (+0.007%) to 86.889%

Files with Coverage Reduction
New Missed Lines
%

crates/qasm2/src/expr.rs
1
93.76%

crates/qasm2/src/lex.rs
4
91.92%

crates/qasm2/src/parse.rs
6
97.6%

Totals

Change from base Build<PHONE_NUMBER>:
0.007%

Covered Lines:
74033

Relevant Lines:
85204

💛  - Coveralls

Out of curiosity, are there ways to define conditional custom gates without a gate statement?

No, the OQ2 language doesn't support that - the phrasing in the release note is supposed to imply

Previously, any conditional custom gate (i.e. those defined by a gate statement in an OpenQASM 2 file) would lose its condition when copied or pickled.

and not

Previously, any conditional custom gate (e.g. those defined by a gate statement in an OpenQASM 2 file) would lose its condition when copied or pickled.

I can change it if you prefer to be clearer.

I think that is ok, it's probably clear to the target audience of the reno and I was just lacking background knowledge.


onInit Option and rateyo.init Event

This adds support for the onInit option and the rateyo.init event. These follow the pattern of the onSet and onChange options and rateyo.set and rateyo.change events accordingly.
Note that this allows a user to change the onInit option after initialization ($('.rateyo').rateYo('option', 'onInit', externalFunction);), which is a useless procedure as initialization will not occur again. As such, the only working methods to execute a callback upon initialization are to set a callback as an option or to bind to the rateyo.init event before initialization.
Further note that this pull request does not include the compilation of the new javascript, nor does it change the version number, etc.

So I realized that the ability to only execute an onSet callback after initialization could be replicated by binding to rateyo.set after the initial rating has been set. This handles my use case, but it may still be a good idea to semantically differentiate between the two.

@radicalbiscuit yes, it is useless to set onInit after initialization, but one can pass it as an option during initialization itself.
The following are my thoughts on it

from the feed back i received and my personal experience with the plugin, no one expects onSet to be called the first time, coz their intention to set the onSet option is to listen for change in the rating.

You way of binding to rateyo.set after the initial rating has been set looks like a work around, but what about the users who sent the onSet as an option to the plugin?

So, i want to remove calling the onSet callback the first time. but at the same time, i want to give an option like onInit which executes when the plugin is fully rendered. Of course, the plugin would be fully rendered by the time the execution goes to next line after initialization, yes, as you said,  just to be be more semantic, i want to have this option too.

What do you say?


Fix windows tests for #98: ignoring @overload decorated functions

Description
This is just the changes by @ErwinJunge in #98, with the expected results for the windows tests updated.
(let me know if I should be somehow adding this to #98 instead, I'm not sure how I'd do that. Or @ErwinJunge if you just want to add these to your branch that would work too).
Motivation and Context
Allows #98 to be merged, which fixes #97
Have you tested this? If so, how?
I've run the tests put in by @ErwinJunge on linux and windows, and run the changes against my own code.
Checklist for PR author(s)

[X] Changes are covered by unit tests (no major decrease in code coverage %).
[X] All tests pass.
[X] Docstring coverage is 100% via tox -e docs or interrogate -c pyproject.toml (I mean, we should set a good example :smile:).
[X] Updates to documentation:

[X] Document any relevant additions/changes in README.rst.
[X] Manually update both the README.rst and docs/index.rst for any new/changed CLI flags.
[X] Any changed/added classes/methods/functions have appropriate versionadded, versionchanged, or deprecated directives.  Find the appropriate next version in the project's __init__.py file.

Release note

Add ``--ignore-overloaded-functions`` flag to ignore overload decorators (`#97 <https://github.com/econchick/interrogate/issues/97>`_).

@zackyancey thanks so much for taking the time to fix the windows part of the tests :bow:
I'm fine with merging this instead of #98, since it contains my singular commit from #98 anyways :)
However, now the pre-commit has started failing on missing interrogate for some reason? :thinking:
Anyways, you have my full support, let's get this merged!

Hm, it looks like the same thing is happening on master and on other PRs newer than a couple weeks old. It seems like it might be related to the recent move to pre-commit.ci -- @hynek @econchick any idea what could be causing the precommit to not find interrogate?

Yes it's because the local install step doesn't work there. It should be replaced by a normal pre-commit installation and add dog-fooding to Tox.

That did it, thanks!

Any news on this? (The merge would be perfect for me :wink:)

As far as I can tell the tests should be passing now -- I think all that's needed to get it merged is review/approval. @econchick am I missing anything here?

Thanks for your help! I cherry picked your commits and included them in #167 ❤


Upgrade project to Unity 2022.3.4

This is what it takes for us to switch to Unty 2022 as our project base.

Closed by #21


added send message and fetch conversation

function perform_login() was checking a static, always true, variable to determine if you logged in which I fixed. I also added the ability to send messages via xbox live as well as fetch individual conversations/messages with your friends list.
Hopefully these minor modifications help others.
Cheers,
David

Add LiveLogin by Peter Nied

M13Kd.visualstudio.com

To add Windows live client sign in to the API would be a great idea to advance the project in it's entirety. Html5 layout is OK to build upon the XCL.XBOX.com support for community ambassador's with XBOX customer support alleviated wait times along with reduced wait and callback time's. #m13kd


Future ToList closing the context's reader.

When trying to perform a query via a Context after a Future ToList has been called results in a error of "Invalid attempt to call Read when reader is closed."
using(var context = new EntityContext()){
  var _cust = context.Customers.FirstOrDefault(c => c.CustID == 1234);
  var phones = context.Phones.Where(p => p.OwnerID == _cust.CustomerID).Future();
  var addresses = context.Phones.Where(a => a.OwnerID == _cust.CustomerID).Future();
  var _phones = phones.ToList();
  var _addresses = addresses.ToList()
  var _cust2 = context.Customers.FirstOrDefault(c => c.CustID == 1235); // Error happens here
}

Is there a way to prevent the reader from being closed or to cause the reader to revert to its original state or otherwise get the context back in the basic working state?

Hello @christiangeorge ,
Thank you for reporting.
We will look at this issue this week.
Could you tell me which version of EF you are using (EF5, EF6, EF Core) to make sure to test with the right version?
Best Regards,
Jonathan

Thank you for taking your time with this.
I am using
Microsoft.EntityFrameworkCore(1.1.2)
Microsoft.EntityFrameworkCore.SqlServer(1.1.2)
Z.EntityFramework.Plus.EFCore (1.6.6)

Hello @christiangeorge ,
Just to give you a small update. We successfully reproduced this issue and found out what is causing it.
We believe we are very close to finding a permanent solution.
Best Regards,
Jonathan

Same error when trying:
for (var i = 0; i < 1000; i++)
            {
                var parameter = this.context.ParameterParts
                    .Where(t => t.Id == model.parameterId)
                    .Select(t => new {
                        t.ParameterId
                    })
                    .Future();

                var value = this.context.ParameterValueParts
                    .Where(t => t.Id == model.valueId)
                    .Select(t => new
                    {
                        t.ParameterValueId
                    })
                    .Future();
                var val = value.First();   //error when i = 1 (second loop)
            }

Hello @christiangeorge , @MaklaCof
The v1.6.8 has been released, we have included a fix for the DataReader.
Please, reopen the issue if you still have the problem.
Best Regards,
Jonathan


PRSS validation in debug runs

Currently we have Participant interface that provides the entry point into shared randomness generation. Clients can request a dedicated space of randomess (basically a PRF with the fixed key) from Participant by using an index value. There is currently no enforcement for this index to be unique.
It is easy to make a mistake right now and incorrectly implement SpaceIndex for a given step and create security violations in IPA code.
This issue is to discuss what can be done to avert that. Can we create a proc macro that can implement SpaceIndex for any enum? Is it possible to use Bloom filters to validate values generated by all PRSS instances in end-to-end tests and alert when program generates the same value for the same index?

We managed to fix this in #208.


ACS: Add health insurance status at the state and county levels

https://www.census.gov/data/developers/data-sets.html
https://www.census.gov/acs/www/about/why-we-ask-each-question/health
https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4732875
We should see if we can get age/gender/race & ethnicity breakdowns at the county level without too high of a margin of error, which should be in the ACS data itself.

Direct link to columns: https://api.census.gov/data/2018/acs/acs5/variables.html

Going to hand this to Seth for a starter project. Here's some information to get you started:
Background on the ACS API:

It's organized into a bajillion individual variables, each of which you can query for a particular geography (in our case, relevant geographies are state, county, and national).
These variables are organized into groups which each have a "concept". These groups represent all combinations of some different breakdown. For example, group C27001A represents the concept HEALTH INSURANCE COVERAGE STATUS BY AGE (WHITE ALONE). This means that every variable in the group represents health insurance coverage status for white people for a particular age group: C27001A_003E -> under 19 years with health insurance, C27001A_004E -> under 19 years without health insurance, etc.
I've found that the best way to understand ACS variables tends to be to go to the page that lists group metadata. You can browse the group concepts, and then click "selected variables" on the right side to take you to the metadata for that group, e.g. C27001A
ACS API calls consist of specifying a geographic level and a list of variables you want. For example: https://api.census.gov/data/2019/acs/acs5?get=NAME,C27001A_003E,C27001A_004E&for=state:* would get variables C27001A_003E and C27001A_004E for all states.
More ACS documentation: https://www.census.gov/data/developers/data-sets/acs-5year.html, https://api.census.gov/data/2019/acs/acs5.html. We're generally using the "Detailed Tables" unless otherwise specified. They tend to have the most granular information.

Okay so more concretely for health insurance:

There are many health-insurance related groups, but the ones we care about are the ones broken down by race/age/sex. Other breakdowns (like income, school enrollment, etc) are beyond scope for now.
C27001A to C27001I are the groups for health insurance by age, with each group representing a different race. These will each need to be queried and then merged together
B27001 is the group by sex and age.
In the standardization step, you'll end up with 4 output tables: by age/race at state level, by age/race at county level, by sex/age at state level, and by sex/age at county level
Note that the age bucket granularity is different for B27001 vs C27001A-C27001I. That's okay, we'll just need to make sure we have matching population buckets
I wrote some utilities that fetch/organize ACS metadata, fetch all variables for a particular group, and standardize the frame into a format that mostly resembles what we want the output tables to look like. You should be able to use these mostly as-is, but they may need tweaking for your use case. As for how to put it all together, I'd look at the ACS population ingestion/standardization, which will mirror the health insurance logic.
Finally, in terms of what values to extract - the most important one is # of insured. We can always derive the # of uninsured or %s by comparing with population. That being said, doesn't hurt to include both # of insured and # of uninsured separately as their own columns.

Going to hand this to Seth for a starter project. Here's some information to get you started:
Background on the ACS API:

It's organized into a bajillion individual variables, each of which you can query for a particular geography (in our case, relevant geographies are state, county, and national).
These variables are organized into groups which each have a "concept". These groups represent all combinations of some different breakdown. For example, group C27001A represents the concept HEALTH INSURANCE COVERAGE STATUS BY AGE (WHITE ALONE). This means that every variable in the group represents health insurance coverage status for white people for a particular age group: C27001A_003E -> under 19 years with health insurance, C27001A_004E -> under 19 years without health insurance, etc.
I've found that the best way to understand ACS variables tends to be to go to the page that lists group metadata. You can browse the group concepts, and then click "selected variables" on the right side to take you to the metadata for that group, e.g. C27001A
ACS API calls consist of specifying a geographic level and a list of variables you want. For example: https://api.census.gov/data/2019/acs/acs5?get=NAME,C27001A_003E,C27001A_004E&for=state:* would get variables C27001A_003E and C27001A_004E for all states.
More ACS documentation: https://www.census.gov/data/developers/data-sets/acs-5year.html, https://api.census.gov/data/2019/acs/acs5.html. We're generally using the "Detailed Tables" unless otherwise specified. They tend to have the most granular information.

Okay so more concretely for health insurance:

There are many health-insurance related groups, but the ones we care about are the ones broken down by race/age/sex. Other breakdowns (like income, school enrollment, etc) are beyond scope for now.
C27001A to C27001I are the groups for health insurance by age, with each group representing a different race. These will each need to be queried and then merged together
B27001 is the group by sex and age.
In the standardization step, you'll end up with 4 output tables: by age/race at state level, by age/race at county level, by sex/age at state level, and by sex/age at county level
Note that the age bucket granularity is different for B27001 vs C27001A-C27001I. That's okay, we'll just need to make sure we have matching population buckets
I wrote some utilities that fetch/organize ACS metadata, fetch all variables for a particular group, and standardize the frame into a format that mostly resembles what we want the output tables to look like. You should be able to use these mostly as-is, but they may need tweaking for your use case. As for how to put it all together, I'd look at the ACS population ingestion/standardization, which will mirror the health insurance logic.
Finally, in terms of what values to extract - the most important one is # of insured. We can always derive the # of uninsured or %s by comparing with population. That being said, doesn't hurt to include both # of insured and # of uninsured separately as their own columns.


Bug fix/remove countdown (fixed PR)

Messed up PR #145 -- this is with merged changes from master.

Fixes #141.
Fixes #144.


Look at axe workflow error

Look at last failing Test accessibility with axe-core on Browserstack github action workflow

Closing, as it works again


Tree needs to be an array for JSX

With the follow example using JSX the code will fail, hence the need to cast the tree argument as an array if not already.
import { h, app } from 'hyperapp';

const model = {};

const update ={};

const view = (model, msg) => (

Test

);

app({model, view, update});

Thanks @maraisr! 🚀

https://github.com/hyperapp/hyperapp/releases/tag/0.0.8


App scale feature

On linux, it would be nice if there was a scale adjustment (or in general). on ubuntu I use the large font feature (it looks like the scale is 125%) but the program can't adapt to it.

I have tested it and I don't have any issues with Ubuntu 22.04.

I have tested it and I don't have any issues with Ubuntu 22.04.

No, it already gets bigger when you change the scale in the settings, this is not a problem, I keep it at 100% scale but the large font feature is on. Take a look at the accessibility settings. When you turn it on, it looks like 125%, but normally the scale is 100%, so it looks like what I posted in the photo. it doesn't matter man, you can add it as an extra feature. It's up to you

Ah, now I know what you mean. Previously I had setup a fixed text size to prevent big text from being overflowed or breaking the layout, but I have removed it. That change will be applied on the next release.


Remove System.Locale import to solve defaultTimeLocale ambiguity

I was getting this error on base-4.8 (GHC 7.10):
web-server/Main.hs:72:34:
    Ambiguous occurrence ‘defaultTimeLocale’
    It could refer to either ‘Data.Time.defaultTimeLocale’,
                             imported from ‘Data.Time’ at web-server/Main.hs:14:1-16
                             (and originally defined in ‘time-<IP_ADDRESS>:Data.Time.Format.Locale’)
                          or ‘System.Locale.defaultTimeLocale’,
                             imported from ‘System.Locale’ at web-server/Main.hs:31:1-20

Thanks!


mifareClassicWriteBlock fail issue

In NfcManager.java, i saw a condition

else if (blockIndex >= mifareTag.getSectorCount()) {

, means that if my nfc tag have 16 sector , i cannot write data into block 16 or more. Is it a bug? blockIndex supposed have to compare with BlockCount (instead of SectorCount)right?

You're completely right! It's a cut&past error from a previous piece of code. I pushed a fix. Please let me know if it's resolved for you.

Hi @liew789 / @poison , thanks for issue reporting and fixing, a bug fix version 1.0.1 has just published!

Closing the issue since I tested the last fix and conform that you can write to blockIndex > sectorCount (wrote to block 60 on a 16-sector card)


Where to hook in request = context['request']?

Hi guys,
I've been playing around with your package and making progress with it.
I am now stuck with a particular issue: I am using another third-party package that needs access to the context['request'] when trying to render the absolute url path of elements that I put inside the template (such as in {% absolute_url 'functionfoo' %} but for some reason I get an error thrown when trying to access the context['request'] inside this template tag.
It looks like the HtmlEmail class doesn't pass the request object inside the context.
What would be the best way to go to include it?
I guess I would have somehow to pass the context whenever creating an HTMLEmail().
Thanks a lot for your help.

You could do something like this:
from emailtools import HTMLEmail

class ThingCreatedAdminEmail(HTMLEmail):
    template_name = 'things/mail/thing_created_admin.html'
    subject = "New Thing Created"

    def __init__(self, thing, request):
        self.thing = thing
        self.request = request

    def get_to(self):
        return [user.email for user in User.objects.filter(is_superuser=True)]

    def get_context_data(self, **kwargs):
        kwargs = super(ThingCreatedAdminEmail, self).get_context_data(**kwargs)
        kwargs.update(
            thing=self.thing,
            request=self.request,
        )
        return kwargs

Then when you want to send your emails, you can do so like this:
def view(request):
    # ...
    email = ThingCreatedAdminEmail(thing, request=request)
    email.send()
    # ...

Another thing you can do is use the BuildAbsoluteURIMixin mixin to build URLs, but it's not that user-friendly because you can't use it in the templates, here's an example usage:
from emailtools import HTMLEmail
from emailtools.cbe.mixins import BuildAbsoluteURIMixin

class ThingCreatedAdminEmail(BuildAbsoluteURIMixin, HTMLEmail):
    template_name = 'things/mail/thing_created_admin.html'
    subject = "New Thing Created"

    def __init__(self, thing):
        self.thing = thing

    def get_to(self):
        return [user.email for user in User.objects.filter(is_superuser=True)]

    def get_context_data(self, **kwargs):
        kwargs = super(ThingCreatedAdminEmail, self).get_context_data(**kwargs)
        kwargs.update(
            thing=self.thing,
            detail_link=self.build_absolute_uri(self.thing.get_absolute_url()),
            admin_link=self.reverse_absolute_uri('admin:things_thing_change', args=(self.thing.pk,)),
        )
        return kwargs

send_thing_created_admin_email = ThingCreatedAdminEmail.as_callable()

The template could just output using {{ detail_link }} or {{ admin_link }}. This has the benefit of not needing the request. This is useful if you are sending emails when you don't have a request (like from a cron job), however, it does require you to set your django.contrib.sites up correctly.
If you wanted to send emails from a cron job, but still reverse the URLs in the template using something like absolute_uri, here's an implementation that uses the django.contrib.sites framework:
# myapp/templatetags/absolute_uri.py

from django import template
from django.core import urlresolvers

from django.contrib.sites.models import Site

register = template.Library()

def build_absolute_uri(path):
    site = Site.objects.get_current()
    return '{protocol}://{domain}{path}'.format(
        protocol='http',
        domain=site.domain,
        path=path
    )

@register.simple_tag
def absolute_uri(view_name, *args, **kwargs):
    """Reverse a URL and make it absolute."""
    path = urlresolvers.reverse(view_name, args=args, kwargs=kwargs)
    return build_absolute_uri(path)

@register.simple_tag
def absolutize(path):
    """Turn a relative URL into an absolute URL."""
    return build_absolute_uri(path)

(I modified this code before posting it, so I haven't tested it, but it's based on something that I've used before.)
I hope this answers your question. I am going to go ahead and close the issue. Please feel free to keep discussing this if you need some more clarification.

Thank you so much for your thorough explanations, it proves very useful, and thanks again for this great package.
It helps me understand better some OOP concepts in Python / Django.
Regards.

Thanks @cyberjoac, if you have any more questions, feel free to keep asking!

And just a small follow-up @cyberjoac.
I would really recommend using a pattern that doesn't involve needing the request object to send your emails.  By doing so, you've forced yourself into a corner where you always need a request object to trigger an email, meaning that you can't do things like sending them asynchronously with cron/celery, or even triggering them manually via the command line.

I wrapped that pattern I mentioned in the previous comment up in a django package, you can get it from PyPI:
https://pypi.python.org/pypi/django-absoluteuri/1.0.0

LOVE IT!

Thanks a lot!!!


Increase overhang timer for Virtual-COS feature

The virtual-COS function works but is a little 'twitchy', closing the COS line between words sometimes. This causes problems particularly with AllStarLink as it then changes mode after the first drop of the COS line and does not forward subsequent audio segments.
If this setting can be manipulated with registers, please provide information on how this is done, or if this requires a code change please add to the front of the queue as otherwise the ASL support is now working in the AIOC and will be a very popular application.
An overhang of say 1.5 seconds would be helpful, and if configurable then up to 3 seconds would be useful.
Many thanks

in the file settings.h there is this definition for the VCOS timeout, it looks like it's set to 200ms which is probably too short.
#define SETTINGS_REG_VCOS_TIMCTRL                           0x94
#define SETTINGS_REG_VCOS_TIMCTRL_DEFAULT                   (SETTINGS_REG_VCOS_TIMCTRL_TIMEOUT_DFLT)
/* TIMEOUT: Timeout (trailing) time in milliseconds in 12.4 format  */
#define SETTINGS_REG_VCOS_TIMCTRL_TIMEOUT_DFLT              ((uint32_t) (200 << 4) << SETTINGS_REG_VCOS_TIMCTRL_TIMEOUT_OFFS)
#define SETTINGS_REG_VCOS_TIMCTRL_TIMEOUT_OFFS              0
#define SETTINGS_REG_VCOS_TIMCTRL_TIMEOUT_MASK              0x0000FFFFUL

please can someone look to add the extra line to the script shown in https://github.com/skuep/AIOC/issues/61#issuecomment-2041084242 to increase the VCOS timeout to 1500ms?
@skuep is this a quick one for you please?

I will have a quick go at it.
Can you try this and post the output?
import sys
import hid
from struct import Struct
from enum import IntEnum, IntFlag

class Register(IntEnum):
    MAGIC = 0x00
    USBID = 0x08
    AIOC_IOMUX0 = 0x24
    AIOC_IOMUX1 = 0x25
    CM108_IOMUX0 = 0x44
    CM108_IOMUX1 = 0x45
    CM108_IOMUX2 = 0x46
    CM108_IOMUX3 = 0x47
    SERIAL_CTRL = 0x60
    SERIAL_IOMUX0 = 0x64
    SERIAL_IOMUX1 = 0x65
    SERIAL_IOMUX2 = 0x66
    SERIAL_IOMUX3 = 0x67
    VPTT_LVLCTRL = 0x82
    VPTT_TIMCTRL = 0x84
    VCOS_LVLCTRL = 0x92
    VCOS_TIMCTRL = 0x94

class Command(IntFlag):
    DEFAULTS = 0x10
    RECALL = 0x40
    STORE = 0x80

def read(device, address):
    data = device.get_feature_report(int(address), 5)
    address, value = Struct('<BL').unpack(data)
    return value

def write(device, address, value):
    data = Struct('<BL').pack(address, value)
    device.send_feature_report(data)

# AIOC is searched for on the system using these values
aioc = hid.Device(vid=0x1209, pid=0x7388)

magic = Struct("<L").pack(read(aioc, Register.MAGIC))

if (magic != b'AIOC'):
    sys.exit(-1)

print(f'Manufacturer: {aioc.manufacturer}')
print(f'Product: {aioc.product}')
print(f'Serial No: {aioc.serial}')
print(f'Magic: {magic}')

if False:
    # Load the hardware defaults
    print(f'Loading Defaults...')
    write(aioc, 0, Command.DEFAULTS)

if False:
    # Set USB VID and PID (use with caution. Will need changes above to be able to re-configure the AIOC)
    vid = 0x1209 # Set VID here
    pid = 0x7388 # Set PID here
    write(aioc, Register.USBID, (vid << 0) | (pid << 16))
    print(f'Now USBID: {read(aioc, Register.USBID):08x}')

if True:
    # Set VCOS trail time
    vcos_trail_ms = 1500
    write(aioc, Register.VCOS_TIMCTRL, (vcos_trail_ms << 4))
    print(f'Now TIMCTRL: {read(aioc, Register.VCOS_TIMCTRL):08x}')

if True:
    # Store settings into flash
    print(f'Storing...')
    write(aioc, 0, Command.STORE)

Thanks Simon, I'm AFK for a week, but have asked Murf to take a look.

Hi Simon I've run the script and have this output:
Manufacturer: AIOC
Product: All-In-One-Cable
Serial No: 218077db
Magic: b'AIOC'
Loading Defaults...
Now USBID: 000c0d8c
Now VCOS_TIMCTRL: 00005dc0
Storing...

so now i'm going to build an ASL node and give it a go :)

Hi Simon, I can confirm this has implemented the extended hang time on the COS, the behavior is much better now on ASL.
I'll add the fully documented ASL implementation to #61 before closing that.

Hi Simon, I can confirm this has implemented the extended hang time on the COS, the behavior is much better now on ASL.
I'll add the fully documented ASL implementation to #61 before closing that.

Nice! That sounds really good. What do you suggest as a sane default for the COS signal that won't drive anyone from the ASL team crazy? Since I have no stakes in ASL, I cannot answer this myself.


use fetch API and return promises

Hey there,
Great library! The direct mapping makes it very robust. However I find myself increasingly working with the relatively new Promise API. Thats why I transformed the relevant parts of the code in jshue to use the newer fetch API instead of XMLHttpRequest, which enables the return of promises. (See new Readme for example usage).
The fail/success callbacks have been removed, because errors can now simply be catched at the end of the promise.
I can understand if you prefer not not merge it, because of incompatibilities with older browsers or because you prefer the callback syntax.
Basically, I still wanted to give you a heads up that I did this fork and give you the option to merge this change if you like. Otherwise I'll publish the fork to npm under the name jshue for easy installation, unless you'd prefer that I use a different name for npm like jshue-next for better distinction. Just let me know.
Credit to your original project and the MIT licence remains of course.

@nylki Thanks for this! I plan to review it this weekend.

Thanks for submitting these changes!

And thank you for reviewing them so quickly :)

When I originally created jsHue, I wanted the simplest possible set of dependencies so that it would run almost anywhere, which is why I went with the callback interface. However, that was a long time ago, and I think this is a natural and reasonable evolution of the library at this time.

I completely understand, I would most likely have decided in the same way 2-4 years ago considering the coverage of native Promise api and fetch at that time.

I requested some minor changes to your code. Please let me know if you can make these changes, after which point I can merge.

I am happy to make the changes in the coming days, I'll keep you informed.

I pushed the changed your asked for. Let me know if I missed something; I also added the "Contributors" section in the Readme.md but left it empty for you to fill in your preferred style.

@nylki Thanks! I will take a look in the next few days.

@nylki Sorry for the delay. Reviewed, made some additional changes, merged, and deployed in a new release. Thanks again.

Was a pleasure!


Beaker fails to start when offline

Operation System: Mac OS X
Beaker version: v0.8.0-prerelease.7
When starting Beaker offline, it fails to load.

I can't seem to reproduce this (Mac OS 10.12) so I'll leave this open, if anybody can reliably trigger it let me know what steps you took

This is happening on a Mac with macOS 10.12.6 however not on a mac with 10.13.6. My guess is this is something special I may have done with my installation. I'll try reproduce again later and try to grab some logs.


Prototype Facility Look-Up Feature

Overview

Experience team met to discuss facility look-up feature and went through research supportive of the concept.
Identified a prototype of this concept that needs update: Prototype link 1 and Prototype link 2

Next steps

[x] Meet w/ Drew to understand what about about prototype do we already know needs to be updated

[x] Update prototype in prep for internal user testing

Figma file located here
Also attaching PDFs of the Figma file in case eng is lacking Figma access.https://app.zenhub.com/files/304423150/39419bb4-f17b-4463-a4c8-dee9e462c538/download

@fmccaf1 THESE ARE GREAT! Thank you so much, Flo. @stephenkao I'll work on refreshing our Epic, but this might be a great exercise for breaking out tickets together


A change in batch size should trigger a change in gradient accumulation

To be able to make a change in batch size more reasonable when finetuning (different batch sizes tend to make the models perform differently), we should change the gradient accumulation accordingly.
Perhaps set a pre-specified list of possible batch sizes, like (1,2,4,8,16,32), and apply corresponding gradient accumulation (32,16,8,4,2,1).

Implemented in https://github.com/saattrupdan/ScandEval/releases/tag/v0.2.0.


Link to live validator doesn't always work

When I go to https://ucan.xyz/validator directly I get a blank page and this message:
ipfs resolve -r /ipns/ucan.xyz/validator: no link named "validator" under bafybeihrv2jlwnqh2ixiikt2ebybci6tg3han2fr7ysd7jwkrs4nzuh2ay

This also happens if I use the link on the navigation bar (which gets me to the validator as expected), but then refresh the page.
I'm experiencing this in Chrome Version 98.0.4758.102 (Official Build) (64-bit) on a Debian-based Linux distribution.

Possible duplicate of #28.

We may also be able to emit a static build with multiple pages. Our current setup emits a SPA, but the SvelteKit ecosystem has adapters that may be able to provide with an alternative.

This has been fixed for a while :)


explain delegate pattern basics/delegates

is about delegate pattern here, maybe example from swift delegate pattern documentation :)
(reported by @claudiug)

This issue was moved to dlang-tour/english#36


fix dropdown shadow with max-height

Hi,
Tried to make a dropdown scrollable by set a max-height, but is doing a shadow wrongly

I just hit this issue as well.

@nmocruz  its been almost a year as I can see, did you found any fix for this?

Hi guys, shadow is set to the dropdown::before element.
I'll try to look into it.
Keep in touch

I just fix it.
On the dropdown menu add the bootstrap built-in class pre-scrollable.

...

I override 2 css class I added comments with what I changed and what was before. So you can apply fix more faster.
.dropdown-menu:before {
            border-radius: 2px;
            /*Was transparent before*/
            background-color: #fff;
            /*Was 0 8px 10px 1px rgba(0,0,0,.14), 0 3px 14px 3px rgba(0,0,0,.12), 0 4px 15px 0 rgba(0,0,0,.2); before*/
            box-shadow: none;
            content: "";
            display: block;
            /*Was absolute before*/
            position: relative;
            top: 0;
            right: 0;
            bottom: 0;
            left: 0;
            -webkit-transform-origin: 0 0;
            transform-origin: 0 0;
            z-index: -1;
        }
        .dropdown-menu {
            border-radius: 2px;
            text-align: left;
            text-align: start;
            /*Was transparent before*/
            background-color: white;
            color: inherit;
            display: none;
            float: left;
            font-size: 1rem;
            font-weight: 400;
            line-height: 1.5rem;
            list-style: none;
            margin: 0;
            min-width: 7rem;
            padding: .5rem 0;
            position: absolute;
            top: 100%;
            left: 0;
            z-index: 80;
            /*Added box shadow here*/
            box-shadow: 0 8px 10px 1px rgba(0,0,0,.14), 0 3px 14px 3px rgba(0,0,0,.12), 0 4px 15px 0 rgba(0,0,0,.2);
        }

This is an image on how its looks like now.

🥇

I stopped to use this library, I had many places where this shadow issue was happening,

@nmocruz I have used it for a while this is the first issue I found and just fix it with some overrides.

@djibe did you test my solution? It works as expected!

@arivera12 I'll try to look into it next week.
Thx.
You had time to test my material build ?
https://github.com/djibe/material/tree/master/css


Release azure-cli-redis 0.2.5

Reviewers, please verify the following for this PR:

[ ] The PR title has format Release <component-name> <version>.
[ ] setup.py has been modified with the same version as in the PR title.
[ ] HISTORY.rst has been modified with appropriate release notes.
[ ] If releasing azure-cli or azure-cli-core, __version__ defined in __init__.py should also be modified to match.

Started releasing azure-cli-redis 0.2.5...

Release of 'azure-cli-redis' with version '0.2.5' unsuccessful. Admins, please release manually.


/tmp/XXXX No such file or directory

Thanks for the great software!
I ran into a strange phenomenon. When I ran lima in the tmp directory as shown below, it did not work. However, it works fine in the home directory. I will provide the necessary information if there is any.
$ cd $(mktemp -d /tmp/XXXXX)
$ lima nerdctl run fedora:34 /bin/true
bash: line 1: cd: /tmp/C3Yus: No such file or directory
$ cd
$ pwd
/Users/utam0k
$ lima nerdctl run fedora:34 /bin/true
$ lima --version
limactl version 0.6.1

Expected behavior, with the default configuration
https://github.com/lima-vm/lima/tree/v0.6.1#configuration

Mounts: ~ (read-only), /tmp/lima (writable)

@AkihiroSuda Thanks for your reply.
This was done by creating a tmp directory on the Mac side, moving it to that directory, and simply trying to start it. In other words, I wasn't going to use file-sharing, but would this still not work?
I'm still in the process of trying out lima and don't understand much about it, so I apologize if I misunderstood something.

Lima tries to let the guest chdir to the cwd of the host, but does not result in an error if the host cwd path does not exist on the guest.
The guest cwd can be also explicitly specified with limactl shell --workdir=/foo default

@AkihiroSuda
Oh, I see! I understand now. I moved it to /tmp/lima and ran it, and it worked.
One more question, is it possible to bind-mount /tmp/lima? I'm having trouble getting a response from this command.
$ pwd
/tmp/lima
$ lima sh -c 'ls /tmp/lima'
another-file
$ lima nerdctl run -v /tmp/lima:/tmp/lima fedora:34
```

Seems hitting https://github.com/containerd/nerdctl/issues/338
I'll try to analyze this tomorrow

I am looking forward to the results of the survey. BTW, I installed podman on qemu and tried bind-mount, but it didn't work.


Code Issues

There are issues in the code displayed for the sections :
Retrieve a range of entities in a partition
Corrected code
try
{
    // Define constants for filters.
    final String PARTITION_KEY = "PartitionKey";
    final String ROW_KEY = "RowKey";
    final String tableName = "Employees";

    // Create a TableServiceClient with a connection string.
    // Create a TableClient with a connection string and a table name.
    TableClient tableClient = new TableClientBuilder()
        .connectionString(connectionString)
        .tableName(tableName)
        .buildClient();

    // Note: It Seems AND is case sensitive. Also, String concatenation was incorrect resulting in compilation issues
    // Create a filter condition where the partition key is "Sales".
    ListEntitiesOptions options = new ListEntitiesOptions().setFilter(PARTITION_KEY + " eq 'Sales' and " + ROW_KEY + " lt '0004' and " + ROW_KEY + " gt '0001'");

    // Loop through the results, displaying information about the entities.
    tableClient.listEntities(options, null, null).forEach(tableEntity -> {
        System.out.println(tableEntity.getPartitionKey() +
            " " + tableEntity.getRowKey() +
            "\t" + tableEntity.getProperty("FirstName") +
            "\t" + tableEntity.getProperty("LastName") +
            "\t" + tableEntity.getProperty("Email") +
            "\t" + tableEntity.getProperty("PhoneNumber"));
    });
}
catch (Exception e)
{
    // Output the stack trace.
    e.printStackTrace();
}

Retrieve a single entity
Corrected code
try
{
    final String tableName = "Employees";

    // Create a TableClient with a connection string and a table name.
    TableClient tableClient = new TableClientBuilder()
        .connectionString(connectionString)
        .tableName(tableName)
        .buildClient();

    // Get the specific entity.
    TableEntity specificEntity = tableClient.getEntity("Sales", "0001");

    // Note : sysout was not terminated properly
    // Output the entity.
    if (specificEntity != null)  {
        System.out.println(specificEntity.getPartitionKey() +
            " " + specificEntity.getRowKey() +
            "\t" + specificEntity.getProperty("FirstName") +
            "\t" + specificEntity.getProperty("LastName") +
            "\t" + specificEntity.getProperty("Email") +
            "\t" + specificEntity.getProperty("PhoneNumber"));
    }
}
catch (Exception e)
{
    // Output the stack trace.
    e.printStackTrace();
}

Delete an entity
Corrected Code
try
{
    final String tableName = "Employees";

    // Create a TableClient with a connection string and a table name.
    TableClient tableClient = new TableClientBuilder()
        .connectionString(connectionString)
        .tableName(tableName)
        .buildClient();

    // Note : Documente was not commented properly
    // Delete the entity for partition key 'Sales' and row key '0001' from the table.
    tableClient.deleteEntity("Sales", "0001");
}
catch (Exception e)
{
    // Output the stack trace.
    e.printStackTrace();
}

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

ID: 5625916c-ebb5-a83f-f03a-4fe2a74418c2
Version Independent ID: b05299ae-160b-945b-9bd3-14b440ef927e
Content: Use the Azure Tables client library for Java
Content Source: articles/cosmos-db/table/how-to-use-java.md
Service: cosmos-db
Sub-service: cosmosdb-table
GitHub Login: @sakash279
Microsoft Alias: akshanka

@Nj-kol Thanks for the feedback. We are investigating the issue and will update you shortly.
@sakash279 FYI..

@Nj-kol Thanks for finding the issues on the doc. Really appreciate your efforts. However I could not find any difference in 'Retrieve a Single Entity' in the code you mentioned. Could you please highlight the difference exactly and we will update the docs as well for it as well?

@Nj-kol Awaiting your response on this.

@AnuragSharma-MSFT

@Nj-kol Thanks for your valuable feedback. We have made the changes through a PR which could take few days to go live.
We will now proceed to close this thread. If there are further questions regarding this matter, please comment and we will gladly continue the discussion.


Update tctl scripts to v2

What was changed

Why?

Checklist

Closes

How was this tested:

Any docs updates needed?

Going to close this, I'll update the syntax when tctl default in the images is switched to 2.


Compile unit extension

There was a Hubspot request about this extension

Approved.
I still don't fully understand, which extensions we are supporting. But I am not going to gatekeep this one. It looks useful, safe and well-maintained.
BTW, why isn't it marked as trusted in the original repo?

I see that no one adds this by default (except some extensions in contrib). Even postgis didn’t do this


Invalid URI exception (on pretty valid URI)

I'm getting "invalid_uri" error when trying to subscribe to feed "BTC_XMR". Here is the code to reproduce.
public static void main(String[] args) {
    try {
      WampClient client = new WampClientBuilder()
          .withUri("wss://api.poloniex.com")
          .withRealm("realm1")
          .build();

      // open connection
      client.open();

      // subscribe to connection status events
      client.statusChanged()
          .observeOn(Schedulers.newThread())
          .subscribe((WampClient.Status status) -> {
            switch (status) {
              case Connected:
                System.out.println("INFO - CONNECTED");

                // perform subscriptions
                client
                    .makeSubscription("BTC_XMR")
                    .observeOn(Schedulers.newThread())
                    .subscribe(
                        (x) -> {
                          System.out.println(toPrettyJSON(x));
                        },
                        Throwable::printStackTrace
                    );
                break;
              case Disconnected:
                System.out.println("INFO - DISCONNECTED");
                break;
              case Connecting:
                System.out.println("INFO - CONNECTING");
                break;
              default:
                throw new IllegalStateException("unknown status");
            }
          });

      bearSleep(50000);

      client.close();
    } catch (WampError e) {
      e.printStackTrace();
    }
  }

bearSleep and toPrettyJson can be replaced with something more simple.
exception i get for this is
ApplicationError(wamp.error.invalid_uri, [], {})
	at ws.wamp.jawampa.internal.UriValidator.validate(UriValidator.java:77)

Please fix this, i'm blocked because of this issue...

I've forked and commented out that part of the code that does validation on makeSubscription, not sure why you're validating that for uri at all? I believe some sort of validation is ok but clearly "BTC_XMT" is pretty valid feed to make subscription.
Probably something is wrong with regex or you need a different regex for feeds... (i'd left only not null and not empty check)

Hi,
this is because jawampa uses the strict URI validation rules with the corresponding regexes that are described and recommended in the WAMP specification: https://github.com/tavendo/WAMP/blob/master/spec/basic.md#identifiers . These don't allow uppercase characters. btc_xmt would be a valid URI.
The issue is a duplicate of #11 and #12
You are right that there's no absolute need to validate the URIs at client side because it's also done at server side. However it doesn't cost much, can avoid unnecessary messages round trips and leads to consistent results even with buggy or mocked server implementations. So I thought it makes sense to have it.

Lets thing from different perspective, the api provider in my calse poloniex didnt take into consideration that recomended way of defining feeds, and it defined that i must subscribed to uppercase version, now that i'm a client and using your lib i have no way to use their api (altough yes its their falt not following the guidline but they dont really have to) except what i just did, i must fork your project comment out some logic in order to use a lib? i dont think thats a reasonable.
At least i must have option to choose if i want it to be validated, from my perspective i dont care what they define, i care that my data gets to me....
So my suggestion is to remove that check from there... Its harming us clients not the providers.
I'll write them about that tough... will link to this issue.

My point is that you dont want to enforce that check in your lib, now i'm worked from your project, unless you fix this or poloniex fix their server side (which i seriously doubt because they have existing clients) i wont be able to get back to remote maven dependency, and will not get future versions (if not done mannually)

WampClientBuilder.withStrictUriValidation(false)

this can be used to relax validation at client side

How do we track if these changes are in latest maven build? in maven repo...
Does it change version? or i have to build it manually?

Hi,
this is available since a change I made at the weekend. And also the default is now loose validation - so for your case it's even not necessary to set the parameter.
The change is not yet in the newest maven build - that's why I didn't mentioned it here yet. It will be in the next one - but I wanted to look at some other things first and want to avoid making new release versions all the time.

Ok, this might be not related question but once it versioned and available trough maven repo, can it change but keep same version? or you must change the version? i dont know how its done usually...
I suppose that to see this update in maven i must check for newer version...

If a new version gets available it will also have a new (increased) version number. Otherwise it could break the build for all people which are having a dependency on the current version.


Delegate Setup Resources for NextGen

Similar to #260 where there was gaps in the resource offering for Gitops, there's seemingly a few holes in the experience here around delegates for nextgen users. I'm not sure if this is also an API/token endevour too, but the problems that leap out as far as I can tell are:

No resource to allow creation of a delegate token.
No resource to allow creation of a delegate
Data-source to allow retrieval/generation of delegate installation YAML.

Have talked with Greg Kroon from the Harness AU team about this previously, and the solution kinda involves doing some manual templating over the installation for a delegate then approving it via the console - but feels like this could be made a nice closed loop easily enough with these two extra resources and the data-source.

FWIW, if you're using k8s, you can use the delegate helm chart. I have a PR open for delegate token management
https://github.com/harness/terraform-provider-harness/pull/578


fix: remove carriage return from version

Replace grep on headers with curl --write-out flag.
#25

Great fix! Thank you.


Conflict with current SIOPv2 spec and profile

SIOP says:

iss is REQUIRED. in case of a self-issued ID token, this claim MUST be set to the value of the sub claim in the same ID Token.

Profile currently says:

iss claim MUST be https://self-issued.me/v2/openid-vc.

yes, in current SIOPv2, iss==sub in the self-issued ID Token.
I think we should migrate to iss==sub once every implementer is ready. (potentially after interoping on the Issuance)

clarify that we use first implementer's draft of SIOPv2 and OpenID4VP and update the URL

PR #36


Default cert is expired

./cli -os-auth-url=https://contrailhost:8143 -os-password=blah -os-username=blah -server=<IP_ADDRESS> -port=8082 network-show Post https://<IP_ADDRESS>:8143/tokens: x509: certificate has expired or is not yet valid
I'll make another Contrail lab before messing with the certs.  This tool has a lot of potential (cross-compiling for other target platforms, etc.).  I haven't gone through the code, but are there any shortcuts for ignoring certs?

I've tested with os-auth-url=http://contrailhost:5000 (i.e. keystone without SSL). Didn't test with SSL.

Works - many thanks!  Now, to see if I can cross-compile it on Linux for OS X! :+1:


prep intro guide for docs

To add this guide to the docs, some of the tags need to change from h1's to h2's, and there needs to be a title. When generating the docs before, the h1's would show up as different articles and the title was not correct.

@grnnja please fix conflicts (I did push some updates to the guide, so just take the latest version)

fixed now
btw I noticed that some of the code in the notebook had errors:

It looks like its been that way for a few commits

btw I noticed that some of the code in the notebook had errors:

it's a warning so no worries. please open an issue on the ploomber repository. we are missing a condition here, since this warning should not be triggered under these conditions

Just submitted an issue. https://github.com/ploomber/ploomber/issues/980
It's not on screen, but II thought it might be a problem since the dag.plot() doesn't show the plot. It just has the 0%|   loading thing. In a previous commit it did show the plot however.

I found a dependency conflict that was breaking the CI for many of the examples, please rebase from the master branch to fix it

Rebased!

I think you've missed the reqs.txt in your rebase?

I think you've missed the reqs.txt in your rebase?

Looks like Eduardo pushed changes. I just rebased again


Gate GDB on debug

What is the actionable item here? I though we explicitly discussed we don't want to gate GDB. @npmccallum ?
Should we close this?


store: Thanos store consumes almost 100G of memory at startup

We have a strange issue with the memory consumption of Thanos Store in our Thanos setup.
Currently, we have a working setup of Prometheus and alertmanager as follows:

3 Prometheus 2.2.1 pods (in a statefulSet) with TSDB as backend. Docker image: quay.io/prometheus/prometheus:v2.2.1. Each Prometheus pod has a thanos sidecar. The docker image of the sidecar is: improbable/thanos:master (image id 2950dff67c9a).
3 Alertmanager v0.15 pods (in a cluster). Docker image: quay.io/prometheus/alertmanager:v0.15.0-rc.1
2 Thanos Query pods.
The kubernetes server is running on AWS EC2 instances with S3 object storage as Thanos storage.

I am trying to implement the thanos-store, however, there is a very strange issue with memory consumption there.
We started a prometheus server from scratch 7d ago. Each prometheus pod consumes on avarage 1G of memory:

When I start the thanos-store and include it in the thanos cluster, the memory consumption is rocket high for the thanos-store.
It starts from 0 and consumes almost all resources on the node and finishes with OEMKill:

After dedicating one 122G node only for thanos-store, I managed to fit the pot in. After the initial burst of memory, the memory eventually settles on about 60G and stays there:

I changed some options like storage.tsdb.retention which was 30d to 24h and chunk-pool-size (from 2g to 512MB) but without any effect.
Here is some detailed information about our configuration:
Store:
      - name: thanos-store
        image: improbable/thanos:master
        env:
        - name: S3_ACCESS_KEY
          value: '***'
        - name: S3_SECRET_KEY
          value: '***'
        - name: S3_BUCKET
          value: '***'
        - name: S3_ENDPOINT
          value: 's3.eu-west-1.amazonaws.com'
        args:
        - "store"
        - "--log.level=debug"
        - "--tsdb.path=/var/thanos/store"
        - "--cluster.peers=monitoring-thanos-peers:10900"
        - "--chunk-pool-size=512MB"
        - "--index-cache-size=64MB"

Prometheus:
      - name: prometheus
        image: quay.io/prometheus/prometheus:v2.2.1
        args:
          - '--storage.tsdb.retention=24h'
          - '--storage.tsdb.no-lockfile'
          - '--storage.tsdb.path=/prometheus/data'
          - '--storage.tsdb.min-block-duration=2h'
          - '--storage.tsdb.max-block-duration=2h'
          - '--config.file=/etc/prometheus-shared/prometheus.yml'
          - '--web.enable-admin-api'
          - '--web.enable-lifecycle'
          - '--web.route-prefix=/'

Sidecar:
      - name: thanos-sidecar
        image: improbable/thanos:master
        env:
        - name: S3_ACCESS_KEY
          value: '***'
        - name: S3_SECRET_KEY
          value: '***'
        - name: S3_BUCKET
          value: '***'
        - name: S3_ENDPOINT
          value: 's3.eu-west-1.amazonaws.com'
        args:
        - "sidecar"
        - "--tsdb.path=/prometheus/data"
        - "--prometheus.url=http://localhost:9090"
        - "--cluster.peers=monitoring-thanos-peers:10900"
        - "--reloader.config-file=/etc/prometheus/prometheus.yml.tmpl"
        - "--reloader.config-envsubst-file=/etc/prometheus-shared/prometheus.yml"

I cannot see anything important that can give us meaningful information in thanos-sidecar logs:
level=debug ts=2018-05-08T13:11:22.604134111Z caller=cluster.go:117 msg="resolved peers to following addresses" peers=<IP_ADDRESS>:10900,<IP_ADDRESS>:10900,<IP_ADDRESS>:10900,<IP_ADDRESS>:10900,<IP_ADDRESS>:10900
level=debug ts=2018-05-08T13:11:22.611780542Z caller=store.go:147 msg="initializing bucket store"
level=debug ts=2018-05-08T13:18:16.247390978Z caller=store.go:151 msg="bucket store ready" init_duration=6m53.635610515s
level=info ts=2018-05-08T13:18:16.247636366Z caller=store.go:224 msg="starting store node"
level=debug ts=2018-05-08T13:18:16.252193094Z caller=delegate.go:82 component=cluster received=NotifyJoin node=01CCZY1EQKVGH5Y9A7BSTV80NP addr=<IP_ADDRESS>:10900
level=debug ts=2018-05-08T13:18:16.258597094Z caller=delegate.go:82 component=cluster received=NotifyJoin node=01CCZRRJQX37W64W2V0BYH9QG6 addr=<IP_ADDRESS>:10900
level=debug ts=2018-05-08T13:18:16.258640807Z caller=delegate.go:82 component=cluster received=NotifyJoin node=01CCZRRQWC61PSNSENQZR4M0M2 addr=<IP_ADDRESS>:10900
level=debug ts=2018-05-08T13:18:16.258661307Z caller=delegate.go:82 component=cluster received=NotifyJoin node=01CCZWET40SSP0VNGP0PVY247G addr=<IP_ADDRESS>:10900
level=debug ts=2018-05-08T13:18:16.258690371Z caller=delegate.go:82 component=cluster received=NotifyJoin node=01CCZWPM08E2TMT7A2NQ2KXRGK addr=<IP_ADDRESS>:10900
level=debug ts=2018-05-08T13:18:16.258727886Z caller=delegate.go:82 component=cluster received=NotifyJoin node=01CCZWXS7TRT7DC9XHQEBXPJCG addr=<IP_ADDRESS>:10900
level=debug ts=2018-05-08T13:18:16.268763726Z caller=cluster.go:201 component=cluster msg="joined cluster" peers=6

The sidecar logs are showing warnings, but I found out that this was due to the fact that prometheus took 1m to load. In the period which prometheus is loading, the sidecar cannot get the configuration from api/v1/status/config and issues this logs:
level=info ts=2018-05-08T12:43:43.105302282Z caller=sidecar.go:315 msg="starting sidecar" peer=
level=info ts=2018-05-08T12:43:43.105425435Z caller=reloader.go:77 component=reloader msg="started watching config file for changes" in=/etc/prometheus/prometheus.yml.tmpl out=/etc/prometheus-shared/prometheus.yml
level=warn ts=2018-05-08T12:43:43.112071103Z caller=sidecar.go:144 msg="failed to fetch initial external labels. Is Prometheus running? Retrying" err="decode response: invalid character 'S' looking for beginning of value"
level=warn ts=2018-05-08T12:43:45.106530306Z caller=sidecar.go:144 msg="failed to fetch initial external labels. Is Prometheus running? Retrying" err="decode response: invalid character 'S' looking for beginning of value"
level=warn ts=2018-05-08T12:43:47.106532299Z caller=sidecar.go:144 msg="failed to fetch initial external labels. Is Prometheus running? Retrying" err="decode response: invalid character 'S' looking for beginning of value"
level=warn ts=2018-05-08T12:43:49.106570044Z caller=sidecar.go:144 msg="failed to fetch initial external labels. Is Prometheus running? Retrying" err="decode response: invalid character 'S' looking for beginning of value"
level=warn ts=2018-05-08T12:43:51.168940045Z caller=sidecar.go:144 msg="failed to fetch initial external labels. Is Prometheus running? Retrying" err="decode response: invalid character 'S' looking for beginning of value"
level=warn ts=2018-05-08T12:43:53.168366187Z caller=sidecar.go:144 msg="failed to fetch initial external labels. Is Prometheus running? Retrying" err="decode response: invalid character 'S' looking for beginning of value"
level=warn ts=2018-05-08T12:43:55.10644909Z caller=sidecar.go:144 msg="failed to fetch initial external labels. Is Prometheus running? Retrying" err="decode response: invalid character 'S' looking for beginning of value"
level=warn ts=2018-05-08T12:43:57.168280363Z caller=sidecar.go:144 msg="failed to fetch initial external labels. Is Prometheus running? Retrying" err="decode response: invalid character 'S' looking for beginning of value"
level=warn ts=2018-05-08T12:43:59.106533152Z caller=sidecar.go:144 msg="failed to fetch initial external labels. Is Prometheus running? Retrying" err="decode response: invalid character 'S' looking for beginning of value"
level=info ts=2018-05-08T12:44:00.908563252Z caller=reloader.go:180 component=reloader msg="Prometheus reload triggered" cfg_in=/etc/prometheus/prometheus.yml.tmpl cfg_out=/etc/prometheus-shared/prometheus.yml rule_dir=
level=info ts=2018-05-08T13:00:13.188416171Z caller=shipper.go:185 msg="upload new block" id=01CCZXCMDGN4AM8G8MTB6F9DX7

Finally, the tsdb samples are not that many and therefore this overuse of memory is definitely not OK:

Any help would be appreciated!
I am very eager to make it work since it is a great tool!

Ok first TODO for me -> push master-<commit-sha> and avoid latest or master images. Otherwise, I have no idea how to track image ID ): (2950dff67c9a). When approximately it was pulled?

Prometheus retention should not matter for this issue
Chunk cache is quite small -> Basically Index cache size (~1GB) + Chunk pool size (whatever you have spare) + some 1-2Gb buffer = max GB store can use.

I would first of all change index cache. 64MB might be way to low. Give it a 1GB. For chunk you can give 20Gb, should be enough. Both of these numbers should limit memory consumption for store.. maybe extremely small number 64MB results with unexpected things?

(Important) Before changing anything. Can you get dump of heap and go routines? just go tool pprof -symbolize=remote -alloc_space thanos "http://<thanos-store>:<store http port>/debug/pprof/heap" and top 5 command. Same for debug/pprof/goroutines. This will give us the exact place of the mem usage or go routine leak.

You did not give thanos-store logs, which are the most interesting here. Can we have some? (:+1:

What about go_goroutines graph for thanos-store? how it looks? Probably sky rocketing as well?

Thank you for the fast reply!

Initially, I worked with the latest  docker image, but I had an issue which was fixed several weeks ago so I had to switch to the master. I pulled the image yesterday - 08.05 approximately 11am CET.
I changed the retention to 24h
3/4. Before I changed the cache and chunk pool size I did a dump of the heap and go routines. Initially, I tried with -alloc_space thanos in the command as you said but I got thanos: open thanos: no such file or directory in the output:

$ go tool pprof -symbolize=remote -alloc_space thanos "http://thanos-store:80/debug/pprof/heap"
Fetching profile over HTTP from http://thanos-store.demo-test.receipt-labs.com:80/debug/pprof/heap
thanos: open thanos: no such file or directory
Fetched 1 source profiles out of 2
Saved profile in /Users/mihailgmihaylov/pprof/pprof.thanos.alloc_objects.alloc_space.inuse_objects.inuse_space.001.pb.gz
File: thanos
Type: alloc_space
Time: May 9, 2018 at 10:21am (EEST)
Entering interactive mode (type "help" for commands, "o" for options)
(pprof) top 5
Showing nodes accounting for 361.58GB, 81.26% of 444.98GB total
Dropped 625 nodes (cum <= 2.22GB)
Showing top 5 nodes out of 62
      flat  flat%   sum%        cum   cum%
  184.88GB 41.55% 41.55%   184.88GB 41.55%  encoding/json.(*Decoder).refill
   63.05GB 14.17% 55.72%    63.05GB 14.17%  reflect.unsafe_NewArray
   44.97GB 10.11% 65.82%    44.97GB 10.11%  github.com/improbable-eng/thanos/pkg/block.ReadIndexCache.func1
   42.42GB  9.53% 75.36%    43.67GB  9.81%  encoding/json.(*decodeState).literalStore
   26.27GB  5.90% 81.26%    26.27GB  5.90%  reflect.mapassign
(pprof)

So I ditched the alloc_space option:
$ go tool pprof -symbolize=remote "http://thanos-store:80/debug/pprof/heap"
Fetching profile over HTTP from http://thanos-store:80/debug/pprof/heap
Saved profile in /Users/mihailgmihaylov/pprof/pprof.thanos.alloc_objects.alloc_space.inuse_objects.inuse_space.005.pb.gz
File: thanos
Type: inuse_space
Time: May 9, 2018 at 10:55am (EEST)
Entering interactive mode (type "help" for commands, "o" for options)
(pprof) top 5
Showing nodes accounting for 50324.67MB, 99.79% of 50430.30MB total
Dropped 114 nodes (cum <= 252.15MB)
Showing top 5 nodes out of 20
      flat  flat%   sum%        cum   cum%
19491.33MB 38.65% 38.65% 50374.16MB 99.89%  github.com/improbable-eng/thanos/pkg/block.ReadIndexCache
12482.44MB 24.75% 63.40% 12482.44MB 24.75%  encoding/json.(*decodeState).literalStore
12212.84MB 24.22% 87.62% 12212.84MB 24.22%  reflect.mapassign
 5375.55MB 10.66% 98.28%  5375.55MB 10.66%  reflect.unsafe_NewArray
  762.51MB  1.51% 99.79%   762.51MB  1.51%  reflect.unsafe_New
(pprof)

top 5 (debug/pprof/goroutines):
$ go tool pprof -symbolize=remote "http://thanos-store:80/debug/pprof/goroutine"
Fetching profile over HTTP from http://thanos-store:80/debug/pprof/goroutine
Saved profile in /Users/mihailgmihaylov/pprof/pprof.thanos.goroutine.002.pb.gz
File: thanos
Type: goroutine
Time: May 9, 2018 at 10:54am (EEST)
Entering interactive mode (type "help" for commands, "o" for options)
(pprof) top 5
Showing nodes accounting for 26, 100% of 26 total
Showing top 5 nodes out of 69
      flat  flat%   sum%        cum   cum%
        24 92.31% 92.31%         24 92.31%  runtime.gopark
         1  3.85% 96.15%          1  3.85%  runtime.notetsleepg
         1  3.85%   100%          1  3.85%  runtime/pprof.writeRuntimeProfile
         0     0%   100%          2  7.69%  bufio.(*Reader).Read
         0     0%   100%          1  3.85%  github.com/improbable-eng/thanos/pkg/cluster.warnIfAlone

Thanos-store logs:

level=debug ts=2018-05-08T13:11:22.604134111Z caller=cluster.go:117 msg="resolved peers to following addresses" peers=<IP_ADDRESS>:10900,<IP_ADDRESS>:10900,<IP_ADDRESS>:10900,<IP_ADDRESS>:10900,<IP_ADDRESS>:10900
level=debug ts=2018-05-08T13:11:22.611780542Z caller=store.go:147 msg="initializing bucket store"
level=debug ts=2018-05-08T13:18:16.247390978Z caller=store.go:151 msg="bucket store ready" init_duration=6m53.635610515s
level=info ts=2018-05-08T13:18:16.247636366Z caller=store.go:224 msg="starting store node"
level=debug ts=2018-05-08T13:18:16.252193094Z caller=delegate.go:82 component=cluster received=NotifyJoin node=01CCZY1EQKVGH5Y9A7BSTV80NP addr=<IP_ADDRESS>:10900
level=debug ts=2018-05-08T13:18:16.258597094Z caller=delegate.go:82 component=cluster received=NotifyJoin node=01CCZRRJQX37W64W2V0BYH9QG6 addr=<IP_ADDRESS>:10900
level=debug ts=2018-05-08T13:18:16.258640807Z caller=delegate.go:82 component=cluster received=NotifyJoin node=01CCZRRQWC61PSNSENQZR4M0M2 addr=<IP_ADDRESS>:10900
level=debug ts=2018-05-08T13:18:16.258661307Z caller=delegate.go:82 component=cluster received=NotifyJoin node=01CCZWET40SSP0VNGP0PVY247G addr=<IP_ADDRESS>:10900
level=debug ts=2018-05-08T13:18:16.258690371Z caller=delegate.go:82 component=cluster received=NotifyJoin node=01CCZWPM08E2TMT7A2NQ2KXRGK addr=<IP_ADDRESS>:10900
level=debug ts=2018-05-08T13:18:16.258727886Z caller=delegate.go:82 component=cluster received=NotifyJoin node=01CCZWXS7TRT7DC9XHQEBXPJCG addr=<IP_ADDRESS>:10900
level=debug ts=2018-05-08T13:18:16.268763726Z caller=cluster.go:201 component=cluster msg="joined cluster" peers=6
level=debug ts=2018-05-08T14:53:08.114805896Z caller=delegate.go:88 component=cluster received=NotifyLeave node=01CCZWET40SSP0VNGP0PVY247G addr=<IP_ADDRESS>:10900
level=debug ts=2018-05-08T14:53:37.014178887Z caller=delegate.go:88 component=cluster received=NotifyLeave node=01CCZWPM08E2TMT7A2NQ2KXRGK addr=<IP_ADDRESS>:10900
level=debug ts=2018-05-08T14:55:08.992652564Z caller=delegate.go:82 component=cluster received=NotifyJoin node=01CD03YSNT5B0C1MK9WFS06ZC0 addr=<IP_ADDRESS>:10900
level=debug ts=2018-05-08T14:58:31.459201575Z caller=delegate.go:82 component=cluster received=NotifyJoin node=01CD0451BRBRNCZXHVKP6C82HS addr=<IP_ADDRESS>:10900
level=warn ts=2018-05-08T15:00:18.997211577Z caller=bucket.go:233 msg="loading block failed" id=01CD048BQ8VA7PY7K2ET378QQW err="new bucket block: load meta: download meta.json: copy object to file: The specified key does not exist."
level=debug ts=2018-05-08T19:58:06.712039888Z caller=bucket.go:754 msg="series query processed" stats="&{blocksQueried:3 postingsTouched:6 postingsTouchedSizeSum:12484 postingsFetched:6 postingsFetchedSizeSum:12484 postingsFetchCount:6 postingsFetchDurationSum:841965794 seriesTouched:6 seriesTouchedSizeSum:359 seriesFetched:6 seriesFetchedSizeSum:279968 seriesFetchCount:3 seriesFetchDurationSum:191563543 chunksTouched:6 chunksTouchedSizeSum:971 chunksFetched:6 chunksFetchedSizeSum:298380 chunksFetchCount:3 chunksFetchDurationSum:332463129 getAllDuration:458034833 mergedSeriesCount:6 mergedChunksCount:6 mergeDuration:53300}"
level=warn ts=2018-05-09T01:00:18.445088563Z caller=bucket.go:233 msg="loading block failed" id=01CD16JZZ5C6E80ZV5ZENWAM29 err="new bucket block: load meta: download meta.json: copy object to file: The specified key does not exist."

Strangely, the goroutines are not that many. I used the metric from node_exporter and showed a variation from 15 to 30. Also this is /debug/pprof:

Here is the pdf of the heap:
profile001.pdf
Yes, I noticed that issue with the key, too. I found the block in S3 and it is there with a meta.json that looks fine. However, since now I am running compactor and it fails every 1h with overlaps found while gathering blocks I decided that this may be somehow connected to that issue.

Wonder if that is related to 64MB cache limit

First of all the meta.json error:

Minio-go gives us:
The specified key does not exist. on Get.Read(byte) while downloading the meta.json file from S3. It corresponds to:

< if objectName != "" >
errResp = ErrorResponse{
					StatusCode: resp.StatusCode,
					Code:       "NoSuchKey",
					Message:    "The specified key does not exist.",
					BucketName: bucketName,
					Key:        objectName,
				}

Seems like simply there is no 01CD048BQ8VA7PY7K2ET378QQW/meta.json but there is 01CD048BQ8VA7PY7K2ET378QQW directory in your S3 bucket.

Can you confirm that?
Is there any dir that actually have meta.json?

All of this indicates that we had some partial uploads, which is not good. What compactor is saying exactly? It might indicate same issues. Only thanos sidecars or compactor uploads blocks so we need all logs that we have. Especially for thanos-sidecars.. Maybe some thanos-sidecar had some troubles while uploading block?
This however does not explain memory leak yet. The quickest way to tell, might be by adding more integration tests with some mocked bucket store. Can look on that tomorrow, nothing obvious from code.
The mem leak is in ReadIndexCache so after meta.json is loaded. Maybe partially loaded index file causes this if that happened? Also code suggests that small index cache does not matter here as well.

As far as meta.json is concerned, there is a 01CD048BQ8VA7PY7K2ET378QQW/meta.json and there is a meta.json in every block dir in the S3 bucket.
The content of the file looks fine as well:
{
	"version": 1,
	"ulid": "01CD16JZZ5C6E80ZV5ZENWAM29",
	"minTime":<PHONE_NUMBER>000,
	"maxTime":<PHONE_NUMBER>000,
	"stats": {
		"numSamples": 34724882,
		"numSeries": 145225,
		"numChunks": 289847
	},
	"compaction": {
		"level": 1,
		"sources": [
			"01CD16JZZ5C6E80ZV5ZENWAM29"
		]
	},
	"thanos": {
		"labels": {
			"monitor": "prometheus",
			"replica": "monitoring-prometheus-1"
		},
		"downsample": {
			"resolution": 0
		}
	}
}

Also here is how the compactor fails at after about 40min of work:
level=error ts=2018-05-09T15:13:36.413829592Z caller=main.go:147 msg="running command failed" err="compaction: pre compaction overlap check: overlaps found while gathering blocks. [mint:<PHONE_NUMBER>000, maxt:<PHONE_NUMBER>000, range: 30m0s, blocks: 13663]: <ulid: 01CCDH9041A4DKYF04VY3VASFH, mint:<PHONE_NUMBER>000, maxt:<PHONE_NUMBER>000, range: 2h0m0s>, <ulid: 01CC47S7XHE61BCBWQJTHFHZFB, mint:<PHONE_NUMBER>000, maxt:<PHONE_NUMBER>000, range: 2h0m0s>, <ulid: 01CCJYQYMXFB1QA4DDXV0EZAJJ, mint:<PHONE_NUMBER>000, maxt:<PHONE_NUMBER>000, range: 2h0m0s>, <ulid: 01CC3ZMV0AS32MM5EANW3PW8XP, mint:<PHONE_NUMBER>000, maxt:<PHONE_NUMBER>000, range: 2h0m0s>, <ulid: 01CC43TN1EY7Q1VN0GDCZ5P6WS, mint:<PHONE_NUMBER>000, maxt:<PHONE_NUMBER>000, range: 2h0m0s>,
....

For now I have dropped the compactor cronjob.
I would agree though that somehow the sidecar or the compactor messed up the data because these messages are far from normal, but I don't know how.
I made an experiment and pointed the store and sidecars to an empty bucket and everything works fine (there is no data and the new blocks are getting uploaded fine). However, I don't know if when there are a lot of indexes, if the spikes will come back.
I started backing up the production EBS prometheus volumes to try and setup a prometheus server with data on staging. Then will try to run the sidecar containers and afterwards the store. Will monitor for errors while uploading and other issues and get back at you with the results.
Once again, I very much appreciate the help!

I think we have two separate issues here.
One is some memory leak, when partial upload happens (for example is index is uploaded in the half or something like this?) - this needs to investigated, I am writing now some loacal tests that will help confirm this.
Second is scary, because if there was no upload error on sidecar/compactor and meta.json was eventually uploaded, we might hit this issue: https://github.com/improbable-eng/thanos/issues/298 so S3 being not really strongly consistent for write-read. (In theory, it is with some caveats, but when I am rereading upon this, me actually might hit these caveats) - this mean we need some solution to this as well. I think we need to invest some time on this too.

I could not reproduce the memory leak issue but I could not migrate my 3 months to S3 as well.
That lead me to the question, can Thanos migrate old data?
I read in the description that the sidecar backs up data but does it do so for legacy blocks? Like in my case where I had retention interval of 90d. I implemented thanos sidecar but did not change the retention so that the data is not removed. Then I implemented thanos store and switched to 24h retention but no data was uploaded, it was just deleted.
That raises the question how I managed to put all those blocks to S3 last time. I remember that I did several changes at once - changed the retention to 24h, changed min-block-duration and max-block-duration to very small values.
I continue with my checks and will try to reproduce the issue.

Yup, data migration is a valid use case and we need to figure out how to do it safely: https://github.com/improbable-eng/thanos/issues/206

I finally managed to did it!
Figuring out that the memory leak is most probably caused by the corrupt or incorrect way of uploading the data to S3, yesterday I took time to babysit the upload.
I manually edit each meta.json of each block in Prometheus setting compaction level to 1. Then deleted the blocks from the thanos.shipper.json one by one and make sure that they are consistently uploaded to S3.
Now all the data is in the block storage. I switched the prometheus retention period back to 24h thus pruning the local data. Now the Thanos store occupies the negligible 2G of memory (which are actually saved from the prometheus memory consumption).
I will perform a few other tests before merging to production but it looks very promising.
Although, the memory leak is not explained I think that in the standard day to day work this corruption of data is not an issue.
Thank you so much for the help!

Wow, yeah you handled data migration perfectly, awesome!
So now store node can access old data just fine? Without any mem leak?
Added more tests to make sure all objstore implementations are equal: https://github.com/improbable-eng/thanos/pull/327
Any chance to have you, checkout the branch and run the test while having S3 envvars exported? go test ./pkg/... -v ^^ This will run all test against tmp bucket. No worries if you don't have time for it, I will set up something later.

Yes, no mem leak issues now - the Thanos Store is occupying about 700m of memory and when I load it with fat queries it tops to 2G of memory which is very efficient. When this happened in Prometheus we had an OEMKill.
I have a snapshot of the EBS volumes and the S3 bucket with the broken setup.
I will try to reproduce it again and run the tests and get back at you.

This seems to be resolved.


Revert "Update bot API docs based on the latest changes"

Reverts PaulSonOfLars/telegram-bot-api-spec#47

Why should this be reverted?

Closing due to inactivity, and lack of explanation for the revert


Weekly view of the calendar is displaying the wrong date when startWeekOnSunday is set to true

When startWeekOnSunday is set to true, the date in the Week view is shifted by a day. So Sunday is Oct 1st, Monday is Oct 2nd, and Tuesday is Oct 3rd etc. The correct date should've been Sunday 2, Monday 3, Tuesday 4 etc.

Here's the code to reproduce
https://codepen.io/cynically-the-looper/pen/qBYKNQb?editors=1010

Hi, any idea when this will get merged in?

Still I face the same issue that When startWeekOnSunday is set to true, the date in the Week view is shifted by a day. Can someone help me?

@antoniandre Is there anything blocking to fix this issue? The PR has been peer-reviewed and seem to have been tested.
Do you need help with this?

@antoniandre , Could you please look at this commit, really need startWeekOnSunday function to be fixed

For those who need a fix, I know WeWeb has forked and fixed this issue at https://github.com/weweb-assets/vue-cal/commits/ww-main, as they embedded this into their software and had to fix it for their own customers. I've been using that version since October and it works great.
Maybe that will help some of you!

I am also having this issue. Is there any update on merging PR #514 ?

I am currently using the latest version of the vue-cal package, v4.9.0. However, when I set startWeekOnSunday to true, the dates are still displayed incorrectly. May I kindly inquire if there is a planned timeline for resolving this issue?