Proposal for Criteria Feature in Jakarta Data[Vote]

As a ...

[X] Application user/user of the configuration itself
[X] API user (application developer)
[ ] SPI user (container or runtime developer)
[ ] Specification implementer

I need to be able to ...
Expanding upon the capabilities of the Jakarta Data Query Language (#458), this proposal introduces the Criteria feature to enable programmatically constructing queries within the Jakarta Data framework. The Criteria API provides developers with an object-oriented approach to building query criteria, offering greater flexibility and control over data retrieval operations.
Which enables me to ...
The primary goal of this proposal is to initiate a discussion and a vote regarding the inclusion of the Criteria feature in the Jakarta Data project.
Key Features:

Programmatic Query Construction: The Criteria API allows developers to programmatically build query criteria using a fluent and object-oriented interface, eliminating the need for raw queries.

Filtering and Logical Conditions: Developers can apply various filtration rules and logical conditions to the criteria query object, enabling precise data retrieval based on specific criteria.

Integration with Jakarta Data Query Language: The Criteria feature seamlessly integrates with the Jakarta Data Query Language, providing an additional method for constructing queries within the framework.

Integration with Metadata: Criteria queries can be combined with metadata-driven queries, offering developers multiple options for constructing queries based on their requirements.

Integration with Repository: Introducing a new interface, CriteriaRepository, that extends the existing PageableRepository, and enables seamless integration of criteria-based queries with repository pattern implementations.

Additional information
Example Usage:
// Combined with Metadata
List<Car> cars = template
    .select(Car.class)
    .where(_Car.city.eq("Rome").and(_Car.active.isTrue()))
    .orderBy(_Car.name.asc())
    .result();

// Combined with Repository
@Repository
public interface CardEntityRepository extends PageableRepository<Car, String>, CriteriaRepository<Car> {

    default Page<Car> findAll(String city, Pageable pageable) {
        Specification<Car> criteria = (root, query, criteriaBuilder) -> {
            List<Predicate> predicates = new ArrayList<>();
            predicates.add(criteriaBuilder.equal(root.get("city"), city));
            return criteriaBuilder.and(predicates.toArray(new Predicate[0]));
        };
        return findAll(criteria, pageable);
    }
}

// Pure Implementation
List<Cat> cats = template.createCriteria(Cat.class)
    .add(Predicate.like("name", "Iz%"))
    .addOrder(Order.asc("age"))
    .result();

Benefits:

Simplified Query Construction: The Criteria API simplifies query construction by providing a fluent and object-oriented interface, reducing the complexity of query writing.

Enhanced Flexibility: Developers have greater flexibility in defining query criteria programmatically, allowing for dynamic and adaptable data retrieval operations.

Integration with Metadata and Query Language: The Criteria feature seamlessly integrates with metadata-driven queries and the Jakarta Data Query Language, providing a comprehensive solution for data access within the Jakarta Data framework.

Repository Integration: The introduction of CriteriaRepository enables developers to leverage criteria-based queries within the repository pattern, promoting code organization and reusability.

seems specific to JPA criteria

A pattern like this is something to consider post v1.0 when more is added to the static metamodel to better enable it.

Agreed. This isn't something I would bite off for 1.0. I think really it's tricky to get right. (Speaking from hard experience here.)

By the way, since this issue is open, I just want to record for the future that @njr-11 has proposed something that I think is really nice, in some ways quite a lot nicer than a "full" criteria query API. The idea is to use the static metamodel to express "restrictions" which can be passed to a repository methods.
Conceptually, something like this:
repo.books(_Book.title.like("Jakarta Data%"),
           _Book.publicationDate.between(pastDate, LocalDate.now()))

Or, if you need to combine this with ordering:
repo.books(where(_Book.title.like("Jakarta Data%"),
                 _Book.publicationDate.between(pastDate, LocalDate.now())),
           by(_Book.title.ascIgnoreCase(),_Book.isbn.asc())))

[Don't focus on the details here, I know @njr-11 has thought about this longer than I have and surely has more-developed ideas about it.]
Of course, this is much less expressive than a real criteria API. But:

it's much, much easier to design
it's much, much easier to implement
in terms of actual practical usability it's absolute 🔥🔥🔥

Now, on the other hand, it's also completely compatible with a full criteria API, it's not really in competition at all. The objects returned by like() and between() could be criteria expressions.
Anyway, I would love to have this, and I think users would stampede for something like this.

That is nice!
IIMHO: it would be faster than the query language.

I wonder if it might be helpful to look at how go-jet approaches this?

I have a very, very simple real-life scenario here.
1、Is there any way to achieve repository more easily?
2、Is there any way to achieve PostQuery more semantic？
@Entity
@Table(name = "post")
public class PostEntity {
    @Id
    @UuidGenerator(style = TIME)
    private String id;
    private String status;
    private OffsetDateTime createdAt;

    ...getter/setter
}

@Entity
@Table(name = "post_tag")
public class PostTag {
    @Id
    @UuidGenerator(style = TIME)
    private String id;
    private String postId;
    private String tagId;

    ...getter/setter
}

public class PostQuery {
    private final Set<String> tagIds;
    private final Set<String> statuses;
      ...getter/setter
}

@Repository
public interface PostRepository extends CrudRepository<Post, String> {
    @Nonnull
    StatelessSession session();

    default Page<Post> pageBy(PostQuery query, PageRequest page) {
        if (C2.isEmpty(query.getTagIds())) {
            return Pages.empty();
        }
        CriteriaDefinition<Post> cd = new CriteriaDefinition<>(session().getFactory(), Post.class,
            """
            select * from Post
            where id in (select postId from PostTag where tagId in :tagIds)
            """) {{
            var post = from(Post.class);
            if(query.getStatuses() != null && !query.getStatuses().isEmpty()){
                restrict(in(post.get(Post_.status), query.getStatuses()));
            }
            orderBy(desc(post.get(Post_.CREATED_AT)));
        }};
        int totalResults = session().createSelectionQuery(cd)
            .setParameter("tagIds", query.getTagIds())
            .getResultCount();
        List<Post> results = session().createSelectionQuery(cd)
            .setParameter("tagIds", query.getTagIds())
            .setFirstResult((int) (page.page() - 1) * page.size())
            .setMaxResults(page.size())
            .getResultList();
        return new PageRecord<>(page, results, totalResults);
    }
}

@pipinet I believe you're looking for https://github.com/jakartaee/data/issues/829


ngRepeat

Its possible use ngRepeat with this directive? Same that
<input type="checkbox"
	ng-repeat="i in settSchema.typeLocal"
	local-forage="{key: 'settings', name: 'typeLocal.i', scopeKey: 'settings.typeLocal.i', defaultValue: false"
	ng-model="settings.typeLocal.i">

or need create a new key?

hmm it should work, I haven't tried though

For me yes, but the peevish nodejs dislikes, as it says Error: You must use the name of an existing instance.

ok, one problem here is that name and key are strings, not scope values, so you're storing all your repeated data under the same name/key combination...

Yes, only I remove single quotes in name and scopeValue. Thanks.

Excuse me, you saw that I change the last comment?

Sorry, the error has nothing to do with the ng repeat. It's because you're using the parameter "name", but you probably haven't config the provider to create an instance of that name: https://github.com/ocombe/angular-localForage#configure-the-provider-
The default instance name is "lf": https://github.com/ocombe/angular-localForage/blob/master/src/angular-localForage.js#L21

I've been testing and I've seen the ngRepeat instance variable that affects only scopeKey
ng-repeat="(key, data) in settings.kindLocal"
local-forage="{
key: kindLocal.key,

Like this return TypeError: model.assign is not a function in
https://github.com/ocombe/angular-localForage/blob/master/src/angular-localForage.js#L376
key: 'kindLocal.key',

Its at same key for all.
name: 'settings',
scopeKey: 'settings.kindLocal[key]',
defaultValue: data}"

Like this defaultValue is data, not variable data but string data. Needless to say, use 'data' its a same.
And use settings.kindLocal[key] its the first value of the loop.
ng-model="settings.kindLocal[key]">
{{ key }} {{ settings.kindLocal[key] }} === {{ data }}

Its seems to me ngRepeat not work with this directive.
It would be interesting to choose the storeName/table.
What do you think? And thanks for all.


createAction should adhere to doc contract regarding errors

Specifically, the documentation states the following:

If the payload is an instance of an Error object, redux-actions will automatically set action.error to true.

This implies that, irrespective of the arguments provided to createAction, if the resulting payload is an Error object then the action.error property should be set to true.
This just changes that check to ensure it is performed as stated in the docs.

Could you please do a rebase/merge the latest master commits in your branch to fix this PR? Would like to see Travis passing first before (maybe) merging this.

There you go, let me know if there's anything else I can help with.

Looks good to me. I've merged it, thanks :)

Thanks, appreciate it :+1:

Any estimate on when is it going to get published?

I'm waiting for some other stuff to get merged, then I'll reach out to @acdlite to publish a new version.


Possibility of an upgrade from one package to another

I think there is a case when there are packages package1 and package2 with bundles which share the same bundle image. I think two following pieces of code (they work together) might allow upgrading from package1 to package2.
https://github.com/operator-framework/operator-controller/blob/7161a7b62ec17dc36790455b03773a5f14e7671f/internal/resolution/variablesources/bundle_deployment.go#L43-L53
https://github.com/operator-framework/operator-controller/blob/7161a7b62ec17dc36790455b03773a5f14e7671f/internal/resolution/variablesources/installed_package.go#L31-L43
E.g. when catalogs (single catalog or two different catalogs) have something like this:
package1 bundles:

image:tag1 - version 1.0.0

package2 bundles:

image:tag1 - version 1.0.0
image:tag2 - version 1.0.1

In this case, I think, when we install package1 at version 1.0.0 and then upgrade - our installed bundle might end up being the one from package2 since we search bundes by image references. And installed bundle is driving successors.
I looked into how to mitigate this in https://github.com/operator-framework/operator-controller/pull/442 but it didn't feel like the right solutiion.

In this case, I think, when we install package1 at version 1.0.0 and then upgrade - our installed bundle might end up being the one from package2 since we search bundes by image references. And installed bundle is driving successors.

This should not be possible if we are filtering bundles by package name based on Operator.spec.packageName.

This should not be possible if we are filtering bundles by package name based on Operator.spec.packageName.

We don't seem to do that: I can only see filtering by bundle image here. And we filter successors by package name, but we rely on installed package name.
I think as part of work for #449 I will have to have both Operator and BundleDeployment available in the relevant code (so we can switch between enforcing and ignoring upgrade edge constraints). And it will enable us filtering by package name specified on the Operator spec.

Yeah, I think I started to put the pieces together as I reviewed #460, and I left a few comments in this area:

https://github.com/operator-framework/operator-controller/pull/460#discussion_r1376252897
https://github.com/operator-framework/operator-controller/pull/460#discussion_r1376262167


[FEATURE] create gradio app to monitor datasets and annotations

Is your feature request related to a problem? Please describe.
Not directly.
Describe the solution you'd like
I would like to see a workspace+ dataset overview of the annotators and their progress + input.
Describe alternatives you've considered
N.A.
Additional context
N.A.

Closed in an independent repo and uploaded as a HF Space


protein quality control issues

~I am looking for
chaperone-mediated  (protein) refolding
I can find
GO:0061077   chaperone-mediated protein folding
bout the 'refolding' child is called
GO:0051085    chaperone cofactor-dependent protein refolding
(I don't know why the process needs to specify whether a cofacter is present or not. How would we know?)
There are other strange children here
GO:0061992    ATP-dependent chaperone mediated protein folding | is_a
GO:1990507    ATP-independent chaperone mediated protein folding | is_a
GO:0051086    chaperone mediated protein folding independent of cofactor
should these merge? whether something is ATP dependent should be part of the activity of a specific gene product rather thanthe process (which could not be known at this stage).
For example  GO:1990507 has 4 annotation (2 genes), I think this just meant this particular chaperone does not require ATP?~
out of date

GO:0051086    chaperone mediated protein folding independent of cofactor
has a single experimental annotation. This is describing chaperonin .
chaperonin is:
A multisubunit ring-shaped complex that mediates protein folding in the cytosol without a cofactor. PMID:11580267
but the 'without a cofactor' isn't a useful differentia for the process.
Pretty sure these should merge.
OR rename  GO:0051086
CCT/TRiC- chaperonin mediated protein folding
for clarity

cripes.
protein refolding
is defined as
The process carried out by a cell that restores the biological activity of an unfolded or misfolded protein, using helper proteins such as chaperones.
There is no such thing as protein refolding without chaperones is there (or if there is its autonomous, therefore not annotatable!)
So  "protein refolding" merge with "GO:0051086    chaperone mediated protein folding independent of cofactor"
and rename "chaperone-mediated (protein) refolding"
and I kid you not, these are in different branches:

Anyone who thinks GO annotation is not inconsistent and annotation do not need to be revised is plainly bonkers !

This one should be grouped in a mini project for "Protein Quality Control"
There are loads of tickets about this.
If you create a label I can tag them.

@ValWood
Are you sure refolding is any different from folding? I meant to merge this - there is another ticket somewhere, from @RLovering I think. See also attached paper.
chaperones.pdf

Are you sure refolding is any different from folding?

No. You are right it is just the context that is  different.

Hi Both
I left Rebecca to work on the ontology, but I can see that it seems odd to have refolding not by chaperones. However I am wondering if https://www.uniprot.org/uniprot/P62942 is an exception. We have curated FKBP1A as refolding but not chaperone folding based on author statements in https://pubmed.ncbi.nlm.nih.gov/11322937/ so please check this before revising the placement of this term
Thanks
Ruth

I think  the "unfolding chaperones" are different
the 'unfolding chaperones' are required for 'refolding' and are called 'disaggregases'.
I requested a term for one a while back
https://github.com/geneontology/go-ontology/issues/19173
But I don't  think we need the term I requested for refolding here.
MF disaggregase involved in "protein refolding"
we don't need to bake the chaperone part into the process term. If we are annotating a chaperone it is obvious it is chaperone-mediated.
I think we should remove "chaperone-mediated' from all process terms (unless it is used to differentiate  a specific pathway. This might be the case for 'chaperone-mediated autophagy).

I will obsolete
GO:0061992    ATP-dependent chaperone mediated protein folding
GO:1990507    ATP-independent chaperone mediated protein folding
since these really should be MFs. Only 6 annotations.
This will complete the work on ATPases.
Thanks, Pascale

I think this one can close as out of date. Action is not clear , or is duplicate din other tickets (except
GO:0061992 ATP-dependent chaperone mediated protein folding
GO:1990507 ATP-independent chaperone mediated protein folding
part which is done.


Files stop working when renamed from *.excalidraw to *.excalidraw.svg and vice versa

Description
When an excalidraw file is renamed to another supported extension (e.g. from *.excalidraw to *.excalidraw.svg and vice versa) the file can not be opened by the excalidraw plugin anymore. It only shows a blank VSCode when opening the file.
Steps to reproduce

Create a file with the supported extension (e.g. test.excalidraw)
Optionally add some graphs to the file
Rename the file to test.excalidraw.svg
Close and open the renamed file

Expected behavior
Renaming the extension to another supported extension should not render the file unusable by VSCode.
Workaround

Create a new file with the required extension
Copy and paste the contents from the old file to the new file

Interesting usecase. I'm not sure we will be able to handle this.
As an alternative workaround, you should export you can export the current drawing to the desired format using one of these buttons:

True, this is also a good workaround when starting from the original .excalidraw extension. Hope you can find a way. It is not super problematic since there are 2 workarounds currently. Would like to keep this open for some time if somebody wants to come up with a solution, if this is okay.

In order to support this, I think we should try to detect the format of the input without using the extension.
We would only use the extension when exporting the drawing.

Ok I have a naive but working solution (basically I try to load the file as a json/png/svg sequentially).
I agree that it it feels really good to be able to change the filetype by renaming the file :)

Thank you very much.


[varLib] cpsp feature is not variable

In the attached demo build folder, the master fonts contain 1 kern pair and 1 cpsp lookup. When building a variable font with varLib, the kerning pair becomes variable, but the cpsp value is static.
The cpsp values in the wdth -1 master has XPlacement = 1, XAdvance = 2, and in the wdth 0 master XPlacement = 40, XAdvance = 80. The variable font only contains the 40/80 values.
More precisely, it looks like there are entries for the 40 and 80 in the variation item store in GDEF (item index 0 and 1), but they are not used in the cpsp lookup (Lookup Index 0).
Variable Test cpsp.zip

Think I’ve found it ...


Still not usable with npm

Some weeks ago I opened a PR that added the main attribute to the package.json pointing to src/sticky-sidebar.js. This way the package is usable with npm or similar package managers.
I now see that the value as changed to **dist**/stikcy-sidebar.js which renders it unusable with npm again.
The problem is, that only in the src/sticky-sidebar.js there is an export statement, exporting the StickySidbar class. This is crucial when you want to use it this package with require or import.
Please either set the attribute "main" in the package.json to src/sticky-sidebar.js again, or add an export statement to the dist/sticky-sidebar.js file.

Now dist/sticky-sidebar.js is universal module definition and tested with rollup and browserify and it works great. check it out. Regards.


refactor: replace YTPlayer library with WKYTPlayer library

The standard YTPlayer library from Google still uses the UIWebView because it looks like they gave up on it years ago. I found this library:
https://github.com/hmhv/YoutubePlayer-in-WKWebView
That replaced the UIWebView with the WKWebView. The API is in parity, which means any documentation for how to handle the YTPlayer is the same here, with a few noted exclusions.
The biggest is that retrieving properties is done asynchronously. There was some logic existing that depended on synchronous access to the properties in the WebView. Since that isn't really reliably possible, I had to make some changes around that. The biggest one is that the VideoMediaViewController and AnyModalViewController both called the scrubber directly instead of returning a boolean on the delegate call. This isn't necessarily inappropriate since the scrubber view is held by the ViewControllers already and the scrubber view still only accesses these via a delegate.
I'll call out any concerns I had from the change.

I did not add anything to the licenses :<

Fixes #609


Retirement not being reflected correctly in exports

See: https://github.com/zooniverse/Panoptes-Front-End/issues/1541

Closing this for now, happy to re-open if reports come in again.


Concat features

How is it possible to do the following Step in new version(use of pandas_concat_inputs)?:
                                    transformer=GroupbyAggregationsFeatures(AGGREGATION_RECIPIES),
                                    input_steps=[df_step],
                                    input_data=['input'],
                                    adapter=Adapter({
                                        'X': ([('input', 'X'),
                                               (df_step.name, 'X')],
                                              pandas_concat_inputs)
                                    }),
                                    cache_dirpath=config.env.cache_dirpath)

@grzes314 can you provide quick answer to @tankz0r question? :) Thx

You need to update your docstrings, because there is old syntax:
                                   input_steps=[step_1, step_2],
                                   input_data=['input_2'],
                                   adapter = {'X':([('step_1','X_transformed'),
                                                    ('step_2','X_transformed'),
                                                    ('step_2','categorical_features'),
                                                    ('input_2','auxilary_features'),
                                                   ], hstack_inputs)
                                              'y':(['input_1', 'y'])
                                             }
and also the same is used in steppy-examples https://github.com/minerva-ml/steppy-examples/blob/master/tutorials/simple_step_example.ipynb

I understood how it should be. This way right?
    name='gather_step',
    transformer=make_transformer(lambda lst: {'X': pandas_concat_inputs(lst)}),
    input_steps=[df_step],
    input_data=['input'],
    adapter=Adapter({
        'lst': [E('input', 'X'), E(df_step.name, 'X')]
    }),
    cache_dirpath=config.env.cache_dirpath
)

Well in the way I mentioned earlier it works, however, I need to create one additional Step. Is it possible somehow to do in one line like it was previously?
                                        'X': ([('input', 'X'),
                                               (df_step.name, 'X')],
                                              pandas_concat_inputs)
                                    }),

Hi @tankz0r, you are right that the syntax from here https://github.com/minerva-ml/steppy-examples/blob/master/tutorials/simple_step_example.ipynb is outdated. By Friday we will have new version of code steppy-0.1.2 and docstrings changed accordingly.
New way of adapting inputs is preferred. This is because you do not leak any processing outside step.transformer which happened in case of passing function like hstack_inputs to arrange inputs in some way.
You can still use it in old way by directly taking the steps code from our open-solution-avito-demand-prediction. This link points you to the particular commit.
Best,
Kamil

Is it any difference between results of these two code samples(because I get the same answer in both)? What is the purpose to use Adapter in this case?

Hi @tankz0r, in this can there is no difference. By default Step take 'X', so adapting inputs is identity here: X -> X
Adapter is not obligatory attribute of the Step class.

seems like answer is satisfactory. Closing this :+1:


Embedded userstore does not support 'middleName' attribute

Description
Unable to include a user with 'middleName" attribute using scim2 as the default embedded IS userstore does not support the 'middleName' claim attribute.
Tested Environment
IS 5.8.0 - m6
DB - h2
Ubuntu 15.10
Steps to reproduce the issue

Enable Middle Name claim attribute
Update the user's profile with the middle name

Actual Behaviour
Unable to update the middle name for the user
[2018-11-12 10:54:26,125] ERROR {org.wso2.carbon.identity.user.profile.ui.client.UserProfileCient} -  org.apache.axis2.AxisFault: Profile information could not be updated in LDAP user store for user : dinuka

Expected Behaviour
It should be possible to add the users middle name and supported by the default embedded user store

Thank you for your contribution!
We are closing this issue since it has not been prioritized for a long time. Chances are that it has already been solved in more recent versions. If not, we will be re-evaluating this when it becomes a priority.


Navigating over hidden steps?

I am implementing a wizard process that needs to hide one or more tabs based on selections made by the user in earlier tabs. However, when a tab is hidden, the navigation does not move to the next visible tab (for instance, on the http://vadimg.com/twitter-bootstrap-wizard-example/examples/remove-step.html sample page, hide the tab "Fourth" by entering 3 in the textbox and clicking Hide, then use the Next button to navigate forwards - when you reach the hidden tab, the content is still rendered although the tab is hidden.
Is there a way of implementing such branching logic, especially where different tabs will be displayed based on earlier choices?

@davidkeaveny - did you resolve this? I'm having a similar problem. For example, if I set up a wizard and then hide one of the tabs like this:
$('#mywiz').bootstrapWizard('hide', 2);
$('#mywiz').bootstrapWizard('resetWizard');

the tab does not get skipped when next is pressed

What what it's worth, I altered nextIndex and previousIndex to look for a tab which is visible:
    this.nextIndex = function() {
        var idx;

        for (idx=$navigation.find(baseItemSelector).index($activeTab)+1;
             idx <= obj.navigationLength();
             idx++) {

            if ($navigation.find(baseItemSelector + ':eq(' + idx + ') a').is(":visible")) {
                break;
            }
        }
        return idx;
	};
	this.previousIndex = function() {

        var idx;

        for (idx=$navigation.find(baseItemSelector).index($activeTab)-1;
             idx >= 0;
             idx--) {

            if ($navigation.find(baseItemSelector + ':eq(' + idx + ') a').is(":visible")) {
                break;
            }
        }
        return idx;
	};

@lordelph that's great. let me know if you have the time to create a pull request.


Shows SHA instead of branch name when upstream gone

Prerequisites

[x] I have read and understand the CONTRIBUTING guide
[x] I looked for duplicate issues before submitting this one

Description
Shows SHA instead of branch name when upstream gone
Environment

Oh my Posh version: 3.30.1  beta
Theme: Avit
Operating System: Windows 10
Shell: Powershell 7
Terminal: Windows terminal

Steps to Reproduce

Checkout a branch from upstream
Delete upstream branch and run git fetch --prune

Expected behavior: Shows local branch name with branch gone symbol
Actual behavior: Shows the SHA of the commit

Running

git status -unormal --short --branch
## tower_sizes...origin/tower_sizes [gone]

Running git branch --unset-upstream does then show branch name

Can fix 👍🏻


Added a missing space to the nimcheck command

I forgot to add a leading space when adding --threads:on to the nimcheck command.

I looked into writing some basic tests for nimcheck (based on ale/test/c_tests/test_gcc.vader), but I'm not sure if this is currently possible with Vader.
It seems that Vader stores the contents of the Given buffer as /some/temp/path/[Vader-workbench]. This causes nimcheck to automatically return 'Error: invalid module name: ''[Vader-workbench] and abort checking when it attempts to check this file.
I'm not very familiar with Vader (or vimscript for that matter), so I might be missing something here; I'd be happy to look into it further if you have any idea on how this can be fixed.

That's okay. I'll merge this now so it will fix the bug, and give it a go later.

Cheers! :beers:


ZK reconnect issues

If ZK is brought down and back up, Druid nodes cannot always reconnect. This appears to be a curator PathChildrenCache issue and tracked with:
https://issues.apache.org/jira/browse/CURATOR-153

@fjy : the AnnouncerTest uses org.apache.curator.test.KillSession#kill(org.apache.zookeeper.ZooKeeper, java.lang.String)  to simulate ZK outages.
Do you think that could help pinpoint this problem?

I am closing this for now as no one has reported it to be a problem for quite some time.


Firefox is unable to stream from Mantis API

Context
When Firefox attempts to create a WebSocket connection to Mantis API, the server responds with 200 OK instead of 101 Switching Protocols. Client connection falls into the onerror callback.
Steps to reproduce
Establish a WebSocket connection to Mantis API
const url = `wss://${url}/jobconnectbyid/${jobId}`;
const ws = new WebSocket(url);
ws.onopen = (e) => {
  console.log('WebSocket onopen()', e);
};
ws.onmessage = (e) => {
  console.log('WebSocket onmessage()', e);
};
ws.onerror = (e) => {
  console.log('WebSocket onerror()', e);
};

Expected behavior
Server will respond with "101 Switching Protocols" with headers "connection: upgrade" and "upgrade: websocket". JavaScript client code will call onopen()
Actual Behavior
Server responds with "200 OK" header "content-type: text/event-stream". JavaScript client code calls onerror().
I found the line which is causing this error and will submit a PR

In Firefox, the WebSocket Request Headers sends Connection: keep-alive, Upgrade
In the isWebsocketUpgrade() routine, it is looking for the exact header value Connection: Upgrade which does not match.


Has anybody got a Windows VM to work inside vrnetlab?

Apologies for hijacking issues for this.
Has anybody been able to make some version of a  Windows VM run inside vrnetlab?   I don't need access to the UI, just the ability to run administrator CLI commands.
If nobody has done this, would I be wasting time trying to get it to work?

I'm not aware of anyone who has done this but it's probably possible to do, I mean, vrnetlab only puts VMs inside of containers for packaging / convenience reasons. Since it's possible to run windows as a VM, it is possible to also package in a container :)


DOC: Add missing docs for linprog unknown_options

unknown_options is currently used in each of the linear programming
solvers (interior-point, simplex, revised-simplex) to warn users of any
options not used by that particular solver and is currently undocumented.
This commit documents this in each solver's docstring.

@mdhaber I'll merge this now, do you think it's enough to tick it off the list?
On the plus side, it's only one commit so squash-merge vs merge won't be a problem.

@kai-striega definitely


Set ObjectName manually

Since version 0.9.3 the dataobject name is "harmony.0.Harmony Hub".
Befor version 0.9.3 the dataobject name was "harmony.0.Harmony_Hub".
For updating my adapter to the newest version, i must change all scripts that are using the dataobject "harmony.0.Harmony_Hub.activities.currentActivity".
Maybe ist possible to set the dataobject-name in the adapter config?

It has underscores in current GitHub Version again.

Which is also latest tomorrow


fix: restart animations when image starts loading

closes #83
The reason why a new source url that resolves to the same cache key hides the image is because the opacity is set to 0 when calling resetAnimations
https://github.com/georstat/react-native-image-cache/blob/644fbda8958a53582cb9f6ebc44fe1764a04ae3f/src/CachedImage.tsx#L130-L134
And resetAnimations is called when the source prop changes
https://github.com/georstat/react-native-image-cache/blob/644fbda8958a53582cb9f6ebc44fe1764a04ae3f/src/CachedImage.tsx#L90-L93
However the image only shows up when the image has loaded
https://github.com/georstat/react-native-image-cache/blob/644fbda8958a53582cb9f6ebc44fe1764a04ae3f/src/CachedImage.tsx#L156-L168
Now the problem is that since the source url resolves to the same cache key, the image will not load since it is already loaded and the opacity is never set back to 1, leaving the source image invisible even though it is loaded.
Since we animate the opacity back on image load, then it makes sense to reset the animation on image load start and not when the source url prop changes.
Here is the outcome after this change compared to the one showed in the issue. The difference here is that the image stays rendered after the url changes
https://github.com/user-attachments/assets/2375858c-bc3e-4912-81df-3fb0e67d2f94

@efstathiosntonas Can you please check this?


Add support for UAA environment variables.

I found this was necessary, since the px-oauth component needs these variables to be in scope for angular.

Thanks @gstroup


not receive any award for 2 weeks

HI everyone I've been mining SILICOIN for 2 weeks and no reward received.
is that normal i am connected and synchronized it says Estimated time to win a day and yet nothing comes for 2weeks.
please help

!

me to. for 3 days not reward

Do you use ubuntu? Can you tell me the way to install it?

using windows 10 64 bit. I added my chia plots. now I have 62 plots. program says : farming.. all plots farming..  but from 3 days "0" zero balance

Do you use ubuntu? Can you tell me the way to install it?

Do you use ubuntu? Can you tell me the way to install it?

Sorry mate can not help you with ubuntu.

I had same issue and this worked for me:
For Windows:

Delete this folders:
-C:\Users\name\AppData\Roaming\silicoin
-C:\Users\name\AppData\Local\silicoin
-C:\Users\name.sit folder

You also need to delete the silicoin in this location:
-Control Panel\User Accounts\Credential Manager

After first install, I generated a new key (wallet) than my master wallet with the plots, after syncing I have change to master wallet, after that the same issue. No block reward for a week. But after this steps, it worked. I had this issue with more than 5 forks from chia.

4 days and ZERO BALANCE. my all 62 plots farming but not coming any SIT.  only 0

5 DAYS AND ZERO BALANCE. whats problem ????  help ??????? where is tutorial ???  ı was get chia everyday from Hpool but silicoin not working. My all chia plots legal plot but silicoin  not giving me any reward. whats wrong ???

I only mining on silicoin.
wallet status : Synced (56,824)
all plots legal
I added my all key codes in silicoin program
not multiple farming
whats problem ???  what ????

I had same issue and this worked for me: For Windows:
1. Open Silicoin and click on delete all keys.

2. Delete this folders:
   -C:\Users\name\AppData\Roaming\silicoin
   -C:\Users\name\AppData\Local\silicoin
   -C:\Users\name.sit folder

3. You also need to delete the silicoin in this location:
   -Control Panel\User Accounts\Credential Manager

After that, make new installation.
After first install, I generated a new key (wallet) than my master wallet with the plots, after syncing I have change to master wallet, after that the same issue. No block reward for a week. But after this steps, it worked. I had this issue with more than 5 forks from chia.
Sometimes it takes time, It shows 4 hrs block reward, but i get no coins since a few days.

I've done all that but now have a new problem.
first i had problem creating a new wallet it was just spinning without showing me the 24 words but did a force reload and i manage to create new key.
and now the node does not synchronize it says not synced in red and its spinning endlessly.

Scroll down.
Click on upper left corner on "Node"
Scroll down to connections and click on "connect to other peers"
go to https://alltheblocks.net/silicoin
klick on nodes/ peers and pick one ip and port
enter the ip and port to silicon
if not working try another ip and port from the list

it wor

down to connections and click on "connect to other peers"

go to https://alltheblocks.net/silicoin

klick on nodes/ peers and pick one ip and port

enter the ip and port to silicon

if not working try another ip and port from the list

It worked let see if i will start getting SIT now it tells me 21 hour.will let you know.
thank you very much for your assistance Aminacatim, you are star.


Fix position transposition bugs in the grid editor

Pull request type

Bugfix

What is the current behavior?

Issue Numbers: #252, #256, #257
What is the new behavior?

Fix #252
Context menu on selected cells appears without NPE when viewport is scrolled so that position & index of column differ.
Issue is fixed in 1696ffbdfe550f59b946939f0dde1a4be766cb69, which introduces column type checks based on config labels got from the selection layer directly, instead of trying to route transforms via the NatTable.
Fix #256
Fix #257

Does this introduce a breaking change?

No
Pull request checklist
Please check if your PR fulfills the following requirements:

[x] Tests for the changes have been added or the PR is neither a bug fix nor a feature
[x] Docs have been reviewed and added / updated if needed or the PR is neither a bug fix nor a feature
[x] The Unreleased section in CHANGELOG.md has been amended to reflect the changes in this PR if needed
[x] Build (mvn verify) was run locally and any changes were pushed
[x] The pull request is against the correct branch (master for bug fixes, develop for new functionality)
[x] Dependencies and citation templates have been updated where necessary or there are no new dependencies

Checklist for maintainers
Releases

Do NOT push the green merge button on GitHub.
Follow the latest version of the developer/maintainer docs for making releases.
Check that license and citation information for dependencies are complete (each dependency has a folder in /THIRD-PARTY/).

@thomaskrause Opening for review now, will fix #258 in a separate PR.


Failover of IP seems to cause problems in the bus events connection pool

We noticed during failover testing that if the IP of the database changes, failover takes much longer than it does when it remains the same.
Amazon RDS does failover based on DNS with a very short TTL.  We can configured the JVM to prevent DNS caching, and set "org.killbill.dao.connectionTimeout" and "org.killbill.dao.idleConnectionTestPeriod" to 1s.  We tried experimenting with various connection pool settings as well.
After a failover it takes about 5 minutes before we stop seeing errors and requests go through again.  They appear to come from bus event threads that continue to trickle in for a few minutes:
2015-02-06 16:13:21,563 [bus_ext_events-th] WARN  o.k.queue.DefaultQueueLifecycle - Bus: Thread  bus_ext_events-th  [39] got an exception, catching and moving on...
org.skife.jdbi.v2.exceptions.UnableToObtainConnectionException: java.sql.SQLException: Timeout of 10000ms encountered waiting for connection.
We tried using haproxy to proxy the database connections and provide a static IP to kill bill.  When we do this, we can get failover to happen in just a few seconds.
A fix is not a priority for us since deploying haproxy solves the issue entirely, but we were just wondering if there were settings we were missing to make it work without it.

See https://github.com/killbill/killbill/issues/709.


Add yarn to docker-compose services

It may be beneficial to roll yarn into our docker services so that we don't need separate terminals running docker-compose up and yarn serve. @naglepuff @mcovalt What do you think?

@annehaley, I think this should be done anytime a vue client is added to a Girder 4 project. Would you please write up a miniblog in Notion on how to do this for any Girder 4 project? - looks simple enough, but I'd love to capture it in documentation

This would be a good thing to discuss with the #girder4 channel too. It seems like a cool idea but I'm having trouble intuiting the pros and cons of the approach.


Reactivity Model

[ ] Make Runner threadsafe
[ ] Save outputs for future use
[ ] Set up sheet command system so that we can send events to the sheet
[ ] I guess just stream data from output buffer in Rust code into the terminal
[ ] Store command ID on the cell?
[ ] Maybe have a GC system for commands or something, idk
[ ] Need proper two-way communication so that when a cell resets its state the rust side can create a new graph for it

Tauri events: https://tauri.app/v1/guides/features/events/

Options
Implement GC and tracking manually
use IDs to track reference lifetimes, and do our own garbage collection
Implement GC implicitly using Arc
Runs keep Arc to their inputs, stream results as needed
Final decision

Cells hold references to their currently active runner
Poll cell data instead of command data
Add cursors + buffering to runners
Graph is separate data structure between cells, not runners
Graph created during startup implicitly

Maybe instead of having super complicated threading model, use ideas from tick system in S.js to serialize graph production

petgraph::GraphMap

Use start() -> RunResult to synchronously create graph w/ initial dependencies mapped out

Plan:

Set up buffering using files instead of in-memory stuff (notify crate or tail -f -c +1 FILE)
Run polling for cells instead of runners
Stdin
Dependency Graph


Invalidate an annotation with no quadPoints (when it's required)

Some pdf softwares don't remove highlight annotations but make the QuadPoints array empty.
And the Rect for the annotation can be [-32768, -32768, 32768, 32768] so it leads to have a giant div which catches all the mouse events and make the pdf unusable when there are some forms elements.
I aims to fix issue #12506.

/botio test

/botio-windows test

/botio-linux preview

I don't think this will always work. According to https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf#page=403&zoom=auto,-215,524 the QuadPoints array is optional, so while I'm fine with discarding it if it's empty we should then fall back to the Rect according to the specification. How does Adobe Reader handle this particular PDF file?
In any case, if there are no quadpoints this patch will hide the popup, which is not correct because quadpoints are optional and the popup works fine for annotations that are not rendered with quadpoints but just with the rectangle.

Looks good!


Disable Mission Control to prevent users exiting SYM

Note: While all requests are welcome, finding available cycles to custom-code a feature we won't use in our production environment is always challenging.

Is your feature request related to a problem? Please describe.
A clear, concise description of the problem. (i.e., I'm frustrated when ...)
Disable Mission Control to prevent users exiting SYM
Describe the solution you'd like
A clear, concise description of what you want to happen.
An option to toggle of or on the option for Mission Control.
Describe alternatives you've considered
A clear, concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
simple commands like the following could do the trick.
"defaults write com.apple.dock mcx-expose-disabled -bool TRUE && killall Dock"
"defaults delete com.apple.dock mcx-expose-disabled && killall Dock"
maybe like this part of the current script.
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
Temporarily disable jamf binary check-in (thanks, @mactroll and @cube!)
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #

Thanks, @remcoverburgh!

Here's a link to the #setup-your-mac Channel Conversation.

@remcoverburgh:
I looking at this today, my current understanding is that it's not possible to disable Mission Control in SYM; see Feature Request: Disable Mission Control when using blurscreen #198.
If you can find out how to pull it off, I'd be happy to add it to SYM.
Please advise. Thanks.

@remcoverburgh:
Without additional information about the feasibility of this Feature Request, when 1.10.0 is "official," I'll mark this "Closed as not planned."
Thanks.

Thanks for the link, @robjschroeder:
https://amsys.co.uk/how-to-disable-mission-control-and-spaces-in-os-x

@robjschroeder:
Unfortunately, these are the same commands @remcoverburgh initially provided, which, in a single test on physical hardware with macOS 13.3.1, no longer appear to disable Mission Control.


Add notes about special error handling

Description
Add few notes about when to use error types and when sentinel errors
How can this be tested?
N/A

Codecov Report

Merging #2137 (6892e61) into main (4e7648f) will not change coverage.
The diff coverage is n/a.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
@@           Coverage Diff           @@
##             main    #2137   +/-   ##
=======================================
  Coverage   63.68%   63.68%
=======================================
  Files         243      243
  Lines       15388    15388
=======================================
  Hits         9800     9800
  Misses       4857     4857
  Partials      731      731


ISPN-9410 Intermittent Linkage erros when starting the server with indexed caches

https://issues.jboss.org/browse/ISPN-9410

This fixes the issue for me locally and also CI is ok (failures not related)

Integrated into 9.3.x, thanks @gustavonalle


[WIP] Add grammar for dependencies and lock files

This commits currently point to my own branch representing PR https://github.com/ionide/ionide-fsgrammar/pull/7 and will be mergeable once it has been reviewed/merged and the dependency file here point to the final location.

ionide/ionide-fsgrammar#7 was merged so you can now update paket files.

Updated !
I'm alos preparing a PR also with better grammar for paket.dependencies (Checking part of the syntax to ensure that what's not recognized by paket won't be colorized and having things like "redirects: true" marked as a variable being set to constant value true) but I don't know when it'll be ready.


MAINT: signal: deduplicate *ord functions

Pure maintenance: reduce code duplication in {butter,cheb1,cheb2,ellip}ord functions.

Reworked the newly added tests to be less brittle: do not assert specific values of frequencies. These apparently slightly depend on the versions of the dependencies. So only check the filter order to be the same as before the refactor. For cheb{1, 2}ord, the order is the same, so also assert that the frequencies differ.
The remaining CI failures are https://github.com/scipy/scipy/issues/18842.

Indeed the codebase really breathes now :) Thanks @ev-br

3 core devs happy, and the CI was happy too


ACL mode "Control" on resource must give RW access to ACL file.

The "Control" bit set on an ACL means the ability to control the ACL of the resource.  This mean in  a system which has ACL files to store the ACL, that the user  is given read/write access to th erected .acl file.   .ACL files do not have their own .acl.acl files. They of not have to store any ACLs for themselves.

See http://github.com/nicola/solid-acl

How was this resolved?

Opps, it was closed in the latest! https://github.com/linkeddata/ldnode/commit/3d809ec9fa8239a886f8b743163fc5d889f3bbf9


RMT conflict with esp32-owb

If I use this library in the same project as esp32-owb by @DavidAntliff, I get the following reboot loop as soon as a hit digitalLeds_initStrands.
Guru Meditation Error: Core  1 panic'ed (LoadProhibited)
. Exception was unhandled.
Core 1 register dump:
PC      : 0x40084c86  PS      : 0x00060033  A0      : 0x80081ab4  A1      : 0x3ffb0bc0
0x40084c86: rmt_driver_isr_default at /Users/luke/Code/esp32/esp-idf/components/driver/./rmt.c:769 (discriminator 1)

A2      : 0x0000001a  A3      : 0x04000000  A4      : 0x00000000  A5      : 0x00000002
A6      : 0x04000000  A7      : 0x3ffba450  A8      : 0x3ff56000  A9      : 0x00000001
A10     : 0x00000001  A11     : 0x00000000  A12     : 0x80085fb9  A13     : 0x00000001
A14     : 0x00060021  A15     : 0x00060f23  SAR     : 0x00000006  EXCCAUSE: 0x0000001c
EXCVADDR: 0x00000010  LBEG    : 0x4000c2e0  LEND    : 0x4000c2f6  LCOUNT  : 0xffffffff
Core 1 was running in ISR context:
EPC1    : 0x40084c86  EPC2    : 0x00000000  EPC3    : 0x00000000  EPC4    : 0x400d2120
0x40084c86: rmt_driver_isr_default at /Users/luke/Code/esp32/esp-idf/components/driver/./rmt.c:769 (discriminator 1)

0x400d2120: esp_vApplicationIdleHook at /Users/luke/Code/esp32/esp-idf/components/esp32/./freertos_hooks.c:85

Backtrace: 0x40084c86:0x3ffb0bc0 0x40081ab1:0x3ffb0bf0 0x400824ad:0x3ffb0c10 0x400e4c60:0x00000000
0x40084c86: rmt_driver_isr_default at /Users/luke/Code/esp32/esp-idf/components/driver/./rmt.c:769 (discriminator 1)

0x40081ab1: shared_intr_isr at /Users/luke/Code/esp32/esp-idf/components/esp32/./intr_alloc.c:773

0x400824ad: _xt_lowint1 at /Users/luke/Code/esp32/esp-idf/components/freertos/./xtensa_vectors.S:1105

0x400e4c60: i2c_master_cmd_begin at /Users/luke/Code/esp32/esp-idf/components/driver/./i2c.c:1187

Rebooting...

The relevant sections of code are:
#define WS2812_PIN (27)
#define WS2812_PIN_MASK (1ULL<<WS2812_PIN)
void ws2812_task(void *pvParameter)
{

    gpio_config_t io_conf;
    io_conf.intr_type = GPIO_PIN_INTR_DISABLE;
    io_conf.mode = GPIO_MODE_OUTPUT;
    io_conf.pin_bit_mask = GPIO_SEL_27;
    io_conf.pull_down_en = 0;
    io_conf.pull_up_en = 0;
    gpio_config(&io_conf);

    strand_t strands[] = {
        {.rmtChannel = RMT_CHANNEL_2, .gpioNum = WS2812_PIN, .ledType = LED_WS2812B_V3, .brightLimit = 255, .numPixels =  3,
        .pixels = NULL, ._stateVars = NULL}
    };

    if (digitalLeds_initStrands(strands, 1)) {
        ESP_LOGE(CM02_TAG, "Failed to initialize WS2812");
        vTaskDelete(NULL);
        return;
    }

    uint8_t x = 0;
    while (true) {
        strands[0].pixels[0] = pixelFromRGB(255-x, x, 0);
        strands[0].pixels[1] = pixelFromRGB(0, 255-x, x);
        strands[0].pixels[2] = pixelFromRGB(x, 0, 255-x);
        x++;
        digitalLeds_updatePixels(&strands[0]);
        vTaskDelay(30/portTICK_PERIOD_MS);
    }
}

#define DS18B20_PROBE_PIN 16
static float temp_probe_value = -1;
static void temp_probe_task(void *pvParameter) {
    DS18B20_ERROR err;

    OneWireBus * owb;
    owb_rmt_driver_info rmt_driver_info;
    owb = owb_rmt_initialize(&rmt_driver_info, DS18B20_PROBE_PIN, RMT_CHANNEL_1, RMT_CHANNEL_0);
    owb_use_crc(owb, true);

    DS18B20_Info * ds18b20_probe;
    ds18b20_probe = ds18b20_malloc();
    ds18b20_init_solo(ds18b20_probe, owb);
    ds18b20_use_crc(ds18b20_probe, true);
    ds18b20_set_resolution(ds18b20_probe, DS18B20_RESOLUTION_12_BIT);

    while (1) {
        ds18b20_convert_all(owb);

        // Wait 1s, and then wait longer if the conversion isn't done
        vTaskDelay(1000/portTICK_PERIOD_MS);
        ds18b20_wait_for_conversion(ds18b20_probe); // block

        err = ds18b20_read_temp(ds18b20_probe, &temp_probe_value);
        printf("  %.1f    %d errors\n", temp_probe_value, err);
        // FIXME: check errors
    }
}

I have taken care to specify different RMT channels, and I think the pins I'm using for each peripheral or valid. If I disable one, the other works perfectly.

Interesting that you see this - I've been seeing a similar problem with my set of five DS18B20 devices on a single one-wire bus, but only when they are on long cables (a few metres each). It'll run fine for a day or two, then crash, but then continue to crash unless manually reset. The thing is, I'm also using a second RMT channel - to gate a signal for frequency counting. I wonder if there's something in the driver that comes to light when more than one channel is in use?

@DavidAntliff thanks for the quick reply! Awesome libraries BTW (I'm using your I2c-lcd1602 one too).
I am using a single DS18B20 on a 3m cable. For me it is not intermittent. It crashes reliably in the same place. I tried adjusting the RMT channels used by each library, to no effect.
Let me know if there are any troubleshooting steps that come to mind. In the meantime I switched to the GPIO version of owb and everything works great.

@chmorgan actually wrote the RMT driver, so he might be interested in helping us out with this. If you're able to crash it 100% then that could be useful. Does it still crash if the LED strip(s) are not physically connected? If so, perhaps I can run your code on my board and see if I see the same thing?
I wonder if the physical length of the DS18B20 cable causes an issue. Does it crash if you put your DS18B20 on a really short cable (or use a discrete 3-pin device rather than the sealed version?). What if you modify your code a bit to make it attempt to communicate with the DS18B20 even if it's disconnected? What OWB resistor value are you using?

@lukecyca I've seen that those panics don't always point out the appropriate line that caused the panic. In this case rmt.c:769 is the end of rmt_wait_tx_done().
It's certainly possible there is something up in the library. I did take a significant amount of care with the rmt changes, especially around ensuring the structures and structure offset approach was correct but again that doesn't mean there isn't an issue there.
I don't see any usage of rmt_wait_tx_done() in @DavidAntliff's library. Are you calling this function from another section of code not included in your original post? I'm not familiar with that lcd library.

Does it still crash if the LED strip(s) are not physically connected?
Does it crash if you put your DS18B20 on a really short cable

I've actually just got 3 discrete WS2812 packages soldered to the PCB (to be used as status indicators). So unfortunately it's not too easy to disconnect them. However, I flashed my code onto a devboard with nothing connected, and I get identical results.

I don't see any usage of rmt_wait_tx_done() in @DavidAntliff's library. Are you calling this function from another section of code not included in your original post? I'm not familiar with that lcd library.

Based on a quick grep, there isn't any call to rmt_wait_tx_done() from anything in my source tree (either my code or any components I'm using). To my knowledge the only things in my project using RMT at all are this library (ESP32-Digital-RGB-LED-Drivers) and esp32-owb.
If either of you want a copy of my project, I can email it to you. You should be able to flash it to any ESP32 and reproduce this issue. You can find my email on my profile page.

I'm sorry to hear of this problem. I'm not sure what to add to this yet since I've not encountered the problem and I don't have any deep debugging equipment for my devices handy. However, if two different libraries are attempting to manage the RMT peripheral it might lead to a conflict.

I haven't had a chance to test Luke's code yet, however I have noticed today that if some other part of my code crashes (I was causing crashes by deliberately breaking the TCP stack) then some of the time (not always, but quite often) the RMT peripheral driver fails to initialise properly on the next reboot, which then causes subsequent reboots until intervention is made.
So this makes me wonder if it's possible for the RMT peripheral to get caught in a bad state that the init code isn't properly dealing with. Perhaps for this particular issue, one of these two RMT-utilising tasks causes such a state, which the other task then bumps into it when it tries to initialise.
Just speculation at this point though.

Has this issue been resolved?  I'm running into exactly the same thing...

@pkruger the issue I mentioned on March 28 2018 was fixed by Espressif in 3.0 but may have reared its head again in newer versions. What IDF version are you using? Have you tried the periph_module_disable/enable workaround?

I was cleaning out old tickets - I've reopened this.
I'm not sure if this was ever resolved in the ESP-IDF - from the perspective of my library there's not much to be done. It is possible to use the system interrupt handler and that might have a positive effect, but it incurs a significant performance penalty (FastLED has implemented that alternative, but again, that assumes this would have an effect on the problem seen - give it a try).
The specific setting is described here:
https://github.com/FastLED/FastLED/blob/bbcbb4017ced2f63e521bc1cf7e7b9669da1b1cb/platforms/esp/32/clockless_rmt_esp32.h#L43-L59
Personally, I'd use a DS2482 or similar and let it manage the protocol conversion - using the RMT channels for various purposes at once it tricky at best, especially when doing high-bandwidth operations like driving LEDs.


Crash at [SMPSDKWelcomeViewController updateFirstResponder]

Can't reproduce this crash/bug reliably. sometimes it happens, sometimes not.
Logged 2 Variants via Fabric/Crashlytics (all iOS 11). This crash is relatively rare. Only a small amount of users experienced the crash. Still, a crash.
iOS Deployment Target: iOS 8
Any ideas, suggestions on how to fix this?
I will add Info as soon as i know more.
Variant 1 (line numbers?):
Crashed: com.apple.main-thread
0  libobjc.A.dylib                0x182874430 objc_msgSend + 16
1  UIKit                          0x18d307c14 -[UIInputWindowController setInputViewSet:] + 780
2  UIKit                          0x18d30004c -[UIInputWindowController performOperations:withAnimationStyle:] + 56
3  UIKit                          0x18c810f5c -[UIPeripheralHost(UIKitInternal) setInputViews:animationStyle:] + 1232
4  UIKit                          0x18c7816e0 -[UIPeripheralHost(UIKitInternal) _reloadInputViewsForResponder:] + 2140
5  UIKit                          0x18c780e54 -[UIResponder(UIResponderInputViewAdditions) reloadInputViews] + 80
6  UIKit                          0x18c84f848 -[UITextField becomeFirstResponder] + 700
7  ready2order POS                0x104ab3294 -[SMPSDKWelcomeViewController updateFirstResponder] +<PHONE_NUMBER>
8  ready2order POS                0x104ab28f8 -[SMPSDKWelcomeViewController viewDidAppear:] +<PHONE_NUMBER>
9  UIKit                          0x18c77469c -[UIViewController _setViewAppearState:isAnimating:] + 852
10 UIKit                          0x18c81d30c -[UINavigationController viewDidAppear:] + 220
11 UIKit                          0x18c77469c -[UIViewController _setViewAppearState:isAnimating:] + 852
12 UIKit                          0x18c774c08 -[UIViewController _endAppearanceTransition:] + 228
13 UIKit                          0x18ca9ee50 -[UIPresentationController transitionDidFinish:] + 840
14 UIKit                          0x18cc7e760 -[_UICurrentContextPresentationController transitionDidFinish:] + 44
15 UIKit                          0x18caa2a20 __56-[UIPresentationController runTransitionForCurrentState]_block_invoke_2 + 188
16 UIKit                          0x18c86e9d8 -[_UIViewControllerTransitionContext completeTransition:] + 116
17 UIKit                          0x18c86e7c8 -[UITransitionView notifyDidCompleteTransition:] + 252
18 UIKit                          0x18c86e260 -[UITransitionView _didCompleteTransition:] + 1128
19 UIKit                          0x18c86dde4 -[UITransitionView _transitionDidStop:finished:] + 120
20 UIKit                          0x18c79370c -[UIViewAnimationState sendDelegateAnimationDidStop:finished:] + 312
21 UIKit                          0x18c793418 -[UIViewAnimationState animationDidStop:finished:] + 296
22 UIKit                          0x18c7934b8 -[UIViewAnimationState animationDidStop:finished:] + 456
23 QuartzCore                     0x187337d6c CA::Layer::run_animation_callbacks(void*) + 284
24 libdispatch.dylib              0x182cd1048 _dispatch_client_callout + 16
25 libdispatch.dylib              0x182cddb74 _dispatch_main_queue_callback_4CF$VARIANT$mp + 1016
26 CoreFoundation                 0x1832f3f20 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12
27 CoreFoundation                 0x1832f1afc __CFRunLoopRun + 2012
28 CoreFoundation                 0x1832122d8 CFRunLoopRunSpecific + 436
29 GraphicsServices               0x1850a3f84 GSEventRunModal + 100
30 UIKit                          0x18c7bf880 UIApplicationMain + 208
31 ready2order POS                0x10482aa58 main (main.m:16)
32 libdyld.dylib                  0x182d3656c start + 4

Variant 2:
Crashed: com.apple.main-thread
0  libobjc.A.dylib                0x1860d0430 objc_msgSend + 16
1  UIKit                          0x190b63c14 -[UIInputWindowController setInputViewSet:] + 780
2  UIKit                          0x190b5c04c -[UIInputWindowController performOperations:withAnimationStyle:] + 56
3  UIKit                          0x19006cf5c -[UIPeripheralHost(UIKitInternal) setInputViews:animationStyle:] + 1232
4  UIKit                          0x18ffdd6e0 -[UIPeripheralHost(UIKitInternal) _reloadInputViewsForResponder:] + 2140
5  UIKit                          0x18ffdce54 -[UIResponder(UIResponderInputViewAdditions) reloadInputViews] + 80
6  UIKit                          0x1900ab848 -[UITextField becomeFirstResponder] + 700
7  ready2order POS                0x102847074 -[SMPSDKWelcomeViewController updateFirstResponder] + 176
8  ready2order POS                0x1028466d8 -[SMPSDKWelcomeViewController viewDidAppear:] + 116
9  UIKit                          0x18ffd069c -[UIViewController _setViewAppearState:isAnimating:] + 852
10 UIKit                          0x19007930c -[UINavigationController viewDidAppear:] + 220
11 UIKit                          0x18ffd069c -[UIViewController _setViewAppearState:isAnimating:] + 852
12 UIKit                          0x18ffd0c08 -[UIViewController _endAppearanceTransition:] + 228
13 UIKit                          0x1902fae50 -[UIPresentationController transitionDidFinish:] + 840
14 UIKit                          0x1904da760 -[_UICurrentContextPresentationController transitionDidFinish:] + 44
15 UIKit                          0x1902fea20 __56-[UIPresentationController runTransitionForCurrentState]_block_invoke_2 + 188
16 UIKit                          0x1900ca9d8 -[_UIViewControllerTransitionContext completeTransition:] + 116
17 UIKit                          0x1900ca7c8 -[UITransitionView notifyDidCompleteTransition:] + 252
18 UIKit                          0x1900ca260 -[UITransitionView _didCompleteTransition:] + 1128
19 UIKit                          0x1900c9de4 -[UITransitionView _transitionDidStop:finished:] + 120
20 UIKit                          0x18ffef70c -[UIViewAnimationState sendDelegateAnimationDidStop:finished:] + 312
21 UIKit                          0x18ffef418 -[UIViewAnimationState animationDidStop:finished:] + 296
22 UIKit                          0x18ffef4b8 -[UIViewAnimationState animationDidStop:finished:] + 456
23 QuartzCore                     0x18ab93d6c CA::Layer::run_animation_callbacks(void*) + 284
24 libdispatch.dylib              0x18652d048 _dispatch_client_callout + 16
25 libdispatch.dylib              0x186539b74 _dispatch_main_queue_callback_4CF$VARIANT$mp + 1016
26 CoreFoundation                 0x186b4ff20 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12
27 CoreFoundation                 0x186b4dafc __CFRunLoopRun + 2012
28 CoreFoundation                 0x186a6e2d8 CFRunLoopRunSpecific + 436
29 GraphicsServices               0x1888fff84 GSEventRunModal + 100
30 UIKit                          0x19001b880 UIApplicationMain + 208
31 ready2order POS                0x1024ddd34 main (main.m:16)
32 libdyld.dylib                  0x18659256c start + 4

Hi,
happy to help. Some quick questions to get us started:

Which SDK version are you using? Try 2.3.2 please.
Can you run +[SumupSDK testSDKIntegration] and see if there’s any warnings in your console
What is the last thing you see? Do you see the screen at all? Can you see the textfields?
Where do you present the login from? Can you reproduce the crash with one of the sample apps we provide with the SDK?
Did you call “setupWithApiKey before from the main thread?
Is there any other hint when reproducing with a debugger attached?

its 2.3.2
since the bug seems to appear randomly and very view times, there is no more debug data at the moment. i will post more as soon as possible
We tried to make a screen recording today. We haven't been successful. IIRC: The sumup login screen pops up and immediately after the app crashes.
?, no
no, we use setupWithAPIKey ;) and yes, within application didFinishLaunchingWithOptions
maybe some, but I couldn't reproduce this bug in a debugging friendly environment.

Thx for your fast reply. Hope to send you more infos soon.

Thanks.
Re 4) The login gets presented from a view controller you pass as an argument. How is that VC presented?

Hi.
We've just released v3.0 which is built against iOS 11 and supports iPhone X. Please re-open if the problem persists.
Regards,
Lukas

@mollidor problem persist.

Hi @fetzig,
is there anything else you can provide? Is there a pattern to the devices or OS versions you see in your crash reporting?

Hi @fetzig ,
thanks for the trace and the hints. The view controller tries to make one of the two textfields the first responder in viewDidAppear:
The line in question is pretty straight forward
[self.textfield becomeFirstResponder]; where textfield is either the email or pwd textfields. Both of them are IBOutlets and weak properties. So I'm really puzzled what is going on here and why UIKit spirals out of control after
10 UIKit              0x18e477644 -[UITextField becomeFirstResponder]
11 XXX                0x100b07fd0 -[SMPSDKWelcomeViewController updateFirstResponder]
12 XXX                0x100b07624 -[SMPSDKWelcomeViewController viewDidAppear:]

Is there any other hint? Is this e.g. iPad only? Do you happen whether external keyboards are connected or anything else that would make this a non-trivial "becomeFirstResponder" event?

Hi @mollidor ,
Thx for your reply.
By now iPhone crashes in crashlytics as well.
I don't wanna be a smartass, but i find much info regarding exceptions happening at [self.textfield becomeFirstResponder] and unrecognized selector or exc_bad_access. I assume textfield is not accessible yet, and the call to becomeFirstResponder has to be delayed. AFAIK this makes sense in connection with the filled up ram I mentioned before. Low ram -> Slow "rendering" -> accessing not yet existing ui element -> crash
Hope that helps.
I had another look at it and found another stack trace. this crash happens way more often:
EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0000000a146925b8

#0. Crashed: com.apple.main-thread
0  libobjc.A.dylib                0x18221091c objc_msgSend + 28
1  UIKit                          0x18cdc8884 -[UIInputWindowController setInputViewSet:] + 780
2  UIKit                          0x18cdc28a4 -[UIInputWindowController performOperations:withAnimationStyle:] + 56
3  UIKit                          0x18cdbefe8 -[UIPeripheralHost(UIKitInternal) setInputViews:animationStyle:] + 1716
4  UIKit                          0x18cc1b6ac -[UIPeripheralHost(UIKitInternal) _reloadInputViewsForResponder:] + 2472
5  UIKit                          0x18cd7c330 -[UIResponder(UIResponderInputViewAdditions) reloadInputViews] + 80
6  UIKit                          0x18cd72cac -[UITextField becomeFirstResponder] + 668
7  XXX                            0x1031e0080 -[SMPSDKWelcomeViewController updateFirstResponder] +<PHONE_NUMBER>
8  XXX                            0x1031df6d4 -[SMPSDKWelcomeViewController viewDidAppear:] +<PHONE_NUMBER>
9  UIKit                          0x18cc9e7b8 -[UIViewController _setViewAppearState:isAnimating:] + 840
10 UIKit                          0x18ccf4b8c -[UINavigationController viewDidAppear:] + 204
11 UIKit                          0x18cc9e7b8 -[UIViewController _setViewAppearState:isAnimating:] + 840
12 UIKit                          0x18ccfbc54 -[UIViewController _endAppearanceTransition:] + 228
13 UIKit                          0x18ce0a1e8 -[UIPresentationController transitionDidFinish:] + 836
14 UIKit                          0x18d235320 -[_UICurrentContextPresentationController transitionDidFinish:] + 40
15 UIKit                          0x18d09bcbc __56-[UIPresentationController runTransitionForCurrentState]_block_invoke.436 + 188
16 UIKit                          0x18cc0dc04 -[_UIViewControllerTransitionContext completeTransition:] + 116
17 UIKit                          0x18cc7b6f4 -[UITransitionView notifyDidCompleteTransition:] + 252
18 UIKit                          0x18cc7b2ac -[UITransitionView _didCompleteTransition:] + 1132
19 UIKit                          0x18cf16c18 -[UITransitionView _transitionDidStop:finished:] + 120
20 UIKit                          0x18cc0d134 -[UIViewAnimationState sendDelegateAnimationDidStop:finished:] + 312
21 UIKit                          0x18ccf7048 -[UIViewAnimationState animationDidStop:finished:] + 296
22 UIKit                          0x18ccf70e8 -[UIViewAnimationState animationDidStop:finished:] + 456
23 QuartzCore                     0x1871c8774 CA::Layer::run_animation_callbacks(void*) + 284
24 libdispatch.dylib              0x182934ae4 _dispatch_client_callout + 16
25 libdispatch.dylib              0x1829416e0 _dispatch_main_queue_callback_4CF$VARIANT$mp + 1012
26 CoreFoundation                 0x182feb070 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12
27 CoreFoundation                 0x182fe8bc8 __CFRunLoopRun + 2272
28 CoreFoundation                 0x182f08da8 CFRunLoopRunSpecific + 552
29 GraphicsServices               0x184eeb020 GSEventRunModal + 100
30 UIKit                          0x18cee978c UIApplicationMain + 236
31 XXX                            0x102efa370 main (AppDelegate.swift:17)
32 libdyld.dylib                  0x182999fc0 start + 4

Hi @fetzig
Thanks for the update. We try to make the textfield become first responder in view did appear. I would assume that this accounts for slow rendering as well. Delaying it by some random dispatch time sounds like voodoo to me and hasn't been needed in any other place I'm aware of so far.
I'm wondering what makes these devices run so low on RAM. What kind of view controller do you present the login from? Is this presented when users press a button or similar or from within some other animation/transition?
Regards,
Lukas

Our app basically is a wkwebviews. Will check our implementation against
your documentation.
Side note: be that as it may - if voodoo fixes the problem - i‘m Cool with
it.
Maybe I can help If I get access to the source code. Besides that I can’t
help.
On Sat 2. Jun 2018 at 22:50, Lukas Mollidor<EMAIL_ADDRESS>wrote:

Hi @fetzig https://github.com/fetzig
Thanks for the update. We try to make the textfield become first responder
in view did appear. I would assume that this accounts for slow
rendering as well. Delaying it by some random dispatch time sounds like
voodoo to me and hasn't been needed in any other place I'm aware of so far.
I'm wondering what makes these devices run so low on RAM. What kind of
view controller do you present the login from? Is this presented when users
press a button or similar or from within some other animation/transition?
Regards,
Lukas
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/sumup/sumup-ios-sdk/issues/55#issuecomment-394116187,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAGdIRNQTMXgwde2oV9yWHNJyBXs1Zbdks5t4vp8gaJpZM4QUrex
.

--
klemens mantzos
http://fetzig.at/

Any updates regarding this issue?
We still have ~180 Crashes within the last 90 Days :(

@mollidor We are having exactly the same problem. Our app is a web view too

Any news on this topic? :)

Hi @SchwarzMartin
No update so far. We are currently reworking the login to match the UX of our iOS app v2.0 which we released in early November. The login screen is a complete rewrite so the issues you have been experiencing will hopefully vanish.
We aim to release a Beta version of this within the next 2 weeks.
Any feedback on that would be highly appreciated once released.
Regards,
Lukas

Hello Lukas,
When are you planning to release these changes to the mainline? This issue is one of the largest crashes registered on our crashlytics logging for our app, it would be great to provide more stability for our customers that use SumUp terminals.
Thanks for your help in advance.

Hi Tim.
We are aiming to release v2.1 within the next weeks. Can you give the Beta a try and let us know it it solves the issue for you?

Hi @psycrtb, @SchwarzMartin .
We've just released v3.2. We hope it resolves the issues you encountered.
Kind regards,
Lukas

Thank you very much for the update Lukas. I will try to provide you feedback when we schedule an update within our app.
Hopefully I can try to provide you with some crash reports that we pick up to help you with stability

On 9 Apr 2019, at 18:12, Lukas Mollidor<EMAIL_ADDRESS>wrote:
Hi @psycrtb https://github.com/psycrtb, @SchwarzMartin https://github.com/SchwarzMartin .
We've just released v3.2 https://github.com/sumup/sumup-ios-sdk/releases/tag/v3.2. We hope it resolves the issues you encountered.
Kind regards,
Lukas
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/sumup/sumup-ios-sdk/issues/55#issuecomment-481318756, or mute the thread https://github.com/notifications/unsubscribe-auth/ABMHlkP9pbUs1EGl_Eb7cK2cqukEy7Fiks5vfLvkgaJpZM4QUrex.

Hopefully I can try to provide you with some crash reports that we pick up to help you with stability

Let's hope you can't. 😉

Hello Lukas, Our app released with changes a few weeks ago and since then I have not seen any crashes since. Maybe one or two other listeners can comment on SDK 3.2

Sounds promising. 🤞 Thanks for the update. Will close for now. Please reopen if it creeps up again.


database is locked

how fix database is locked when run ASYNC?

Hello @kekxv ,
Most probably you are getting database is locked error when trying to read/write DB from multiple threads simultaneously.
To fix that just set you DB connection pool to max 1 connection

you mean maxResources?I tried changing it to 1 but it became very slow. include select.
Will database is locked exist between reading and writing? Can add a write lock?


Create lbs-eibiswald.txt

@zanexGHG The first verification stage is complete: the official domain for  Landesberufsschule Eibiswald is www.berufsschulen.steiermark.at, to the best of my knowledge. This is just an informational note. The pull request is still under review. The review may take some more time. I greatly appreciate your patience. Here is the proof of domain ownership: https://www.berufsschulen.steiermark.at/cms/ziel/74835209/DE/

@zanexGHG Thank you for your patience while waiting for a review and processing your request. Pull request merged.


New feature Request - Changing Readme instruction during setup

After the new nextjs setup is done , At the end ,we get few instructions about next steps, it can be improvised.
Example:
$ npx create-next-app -e https://github.com/acquia/next-acms/tree/main/starters/basic-starter
✔ What is your project named? … acms-nextjs
Creating a new Next.js app in /Users/jayakrishnan.jayabal/works/acms-nextjs.

Downloading files from repo https://github.com/acquia/next-acms/tree/main/starters/basic-starter. This might take a moment.

Installing packages. This might take a couple of minutes.

yarn install v1.22.19
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
[4/4] 🔨  Building fresh packages...
success Saved lockfile.
✨  Done in 31.14s.

Initialized a git repository.

Success! Created acms-nextjs at /Users/jayakrishnan.jayabal/works/acms-nextjs
Inside that directory, you can run several commands:

  yarn dev
    Starts the development server.

  yarn build
    Builds the app for production.

  yarn start
    Runs the built app in production mode.

We suggest that you begin by typing:

  cd acms-nextjs
  yarn dev

At the end it can be
cd acms-nextjs
cp .env.example .env.local
#paste ur Environment Settings in `.env.local` file
yarn dev

Opened an issue in the upstream package for this https://github.com/vercel/next.js/issues/38399


Spacing and Requesting a feature

There is still gap at the corners of taskbar rather the bottom spacing issue is resolved . Also you can add a feature such that the taskbar auto hides itself in maximized windows . 😍😍😘😘


Help with Documentation

This seems like it could be very useful, but I'm having trouble understanding how to setup the sueprvisor container. First, it is great to provide a docker image, to save on all the details a new user like me isn't interested in.
But I don't know what kind of setup I need once my container is up.  I end up getting
Traceback (most recent call last):
File "/usr/local/bin/minotaur", line 98, in
Minotaur().deploy()
File "/usr/local/bin/minotaur", line 87, in deploy
exec("{0}.main()".format(sys.argv[3]))
File "", line 1, in
File "/deploy/labs/kafka/kafka.py", line 53, in main
str(args.num_nodes), args.instance_type, args.zk_version, args.kafka_url)
File "/deploy/labs/kafka/kafka.py", line 23, in init
vpc_id = self.get_vpc(environment).id

Hi! Thanks for trying out minotaur.
Looks like you have not deployed infrastructure components yet. So first of all you may want to deploy infrastructure(vpc, subnets, nat - these kind of stuff). Yyou can type the following command to see some help:
minotaur infrastructure deploy all -h
Resulting command must be something like:
minotaur infrastructure deploy all -e test -r us-east-1 -z us-east-1a
After infrastructure is deployed you can deploy any lab you want.

Thanks for the quick reply.  OK, slowly getting it. I am learning a lot of things at once at the moment. :).

Recommended subnet scheme is as follow: for each vpc of, for example, <IP_ADDRESS>/21 there is 2 public <IP_ADDRESS>/23, <IP_ADDRESS>/23 subnets, 2 private <IP_ADDRESS>/24, <IP_ADDRESS>/24 subnets and 2 reserved <IP_ADDRESS>/24, <IP_ADDRESS>/24 subnets. So there is 3 subnets(public, private and reserved) per one availability zone.
tl;dr: just use /21 subnet mask for vpc deployment(<IP_ADDRESS>/21 or <IP_ADDRESS>/21 and so on).

Thanks. I guess I need to create these manually? I was trying to do the all option.
minotaur infrastructure deploy all -e test -r us-east-1 -z us-east-1a -i m1.small -c <IP_ADDRESS>/21
Then creating the private subnet.
The CIDR '<IP_ADDRESS>/23' conflicts with another subnet.
The calculations in minotaur.py doesn't seem to be dividing the sub-domain correctly.  I'll try to do this one at a time.

Thanks. I'm trying to do this will the all option.  The /21 subnet mask worked.

Looks like you have not created iam roles, they must be created first of all.
Do the following:
minotaur infrastructure deploy iampolicies

Thanks for the help. Sorry if I'm just not following the instructions correctly.
Anything else prior to that command?
minotaur infrastructure deploy iampolicies
errors with:
File "/deploy/infrastructure/aws/infrastructure.py", line 73, in deploy
notification_arns=self.notification_arns, disable_rollback=True, capabilities=["CAPABILITY_IAM"])
AttributeError: 'Iampolicies' object has no attribute 'notification_arns'

Ohh, it's a bug, thanks. I've done quick patch for it - please use my development fork(https://github.com/alexgear/minotaur/tree/hadoop) to get updated version. Make sure to use hadoop branch - it is where patch was dropped.

Also don't forget to populate this directory with json file where your credentials will be stored. You can read more about this procedure in bastion readme.

I had to create a 'trusted' group and an 'administrators' group to get the iampolicies stack to work. I just made these two with full admin privileges to get past that part.  Let's see how the deploy all goes this time.
I'm confused about this bastion part. It's just an ssh server in the public sub-domain.  I have my pem file, but I don't have a public key. Where do I get that?

You can generate public key from your privatekey.pem using following command:
openssl rsa -in privkey.pem -pubout > key.pub
Bastion helps you to ssh into instances which don't have public IP address.

Ah, yes, thank you for that. I should've known.
New problem with the Nat stack.
10:34:35 UTC-0800	CREATE_FAILED	AWS::AutoScaling::LaunchConfiguration	LaunchConfig	The key pair 'test' does not exist

Closer.  The nat creation still partially completes.
11:47:49 UTC-0800	CREATE_FAILED	AWS::CloudFormation::Stack	nat-test-us-east-1-us-east-1a	The following resource(s) failed to create: [WaitForInstance].
11:47:47 UTC-0800	CREATE_FAILED	AWS::CloudFormation::WaitCondition	WaitForInstance	WaitCondition timed out. Received 0 conditions when expecting 1

May you write here the content of /var/log/user-data.log file located on nat instance.

Error indicated there wasn't a <IP_ADDRESS>/0 route in my route table.  Trying to work around it, I added it manually. I think I'm getting further now. Lets see!

Awesome! Route table entry with destination <IP_ADDRESS>/0 must point to the network interface of the nat instance and must be automaticly created by user-data script. But to investigate your issue I really need the content of /var/log/user-data.log file located on nat instance, please send it to me.

Ok, I wanted to start over to better test because I was still having some trouble.
Ran this:
minotaur infrastructure deploy all -e test -r us-east-1 -z us-east-1a -i m1.small -c <IP_ADDRESS>/21
It hangs on the nat creation. Here is the /var/log/user-data.log file

export AWS_DEFAULT_REGION=us-east-1
AWS_DEFAULT_REGION=us-east-1
ROUTE_TABLE_ID=rtb-e8473a8d
INSTANCE_WAIT_HANDLE_URL='https://cloudfor...'
++ curl http://<IP_ADDRESS>/latest/meta-data/instance-id
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
Dload  Upload   Total   Spent    Left  Speed
0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100    10  100    10    0     0   1502      0 --:--:-- --:--:-- --:--:--  1666
INSTANCE_ID=i-163cc7e7
++ aws ec2 describe-network-interfaces --filters '{"Name":"attachment.instance-id", "Values":["i-163cc7e7"]}'
DESCRIBE_INTERFACES_RESPONSE='{
"NetworkInterfaces": [
{
"Status": "in-use",
"MacAddress": "12:4b:e4:7f:a5:72",
"SourceDestCheck": true,
"VpcId": "vpc-4d224e28",
"Description": null,
"Association": {
"PublicIp": "5...",
"IpOwnerId": "amazon"
},
"NetworkInterfaceId": "eni-04548229",
"PrivateIpAddresses": [
{
"Association": {
"PublicIp": "5...",
"IpOwnerId": "amazon"
},
"Primary": true,
"PrivateIpAddress": "<IP_ADDRESS>"
}
],
"RequesterManaged": false,
"AvailabilityZone": "us-east-1a",
"Attachment": {
"Status": "attached",
"DeviceIndex": 0,
"AttachTime": "2015-01-16T00:09:50.000Z",
"InstanceId": "i-163cc7e7",
"DeleteOnTermination": true,
"AttachmentId": "eni-attach-cb2a29b6",
"InstanceOwnerId": "876410254869"
},
"Groups": [
{
"GroupName": "nat-test-us-east-1-us-east-1a-SecurityGroup-1QGV5HGUTBZ71",
"GroupId": "sg-a011c5c4"
}
],
"SubnetId": "subnet-209e480b",
"OwnerId": "876410254869",
"TagSet": [],
"PrivateIpAddress": "<IP_ADDRESS>"
}
]
}'
yum -y install jq
Loaded plugins: priorities, update-motd, upgrade-helper
Resolving Dependencies
--> Running transaction check
---> Package jq.x86_64 0:1.4-1.0.amzn1 will be installed
--> Processing Dependency: jq-libs(x86-64) = 1.4-1.0.amzn1 for package: jq-1.4-1.0.amzn1.x86_64
--> Processing Dependency: libjq.so.1()(64bit) for package: jq-1.4-1.0.amzn1.x86_64
--> Running transaction check
---> Package jq-libs.x86_64 0:1.4-1.0.amzn1 will be installed
--> Finished Dependency Resolution

Dependencies Resolved
================================================================================
Package         Arch           Version                 Repository         Size
Installing:
jq              x86_64         1.4-1.0.amzn1           amzn-main          28 k
Installing for dependencies:
jq-libs         x86_64         1.4-1.0.amzn1           amzn-main          90 k
Transaction Summary
Install  1 Package (+1 Dependent package)
Total download size: 118 k
Installed size: 238 k
Downloading packages:
Total                                           553 kB/s | 118 kB     00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : jq-libs-1.4-1.0.amzn1.x86_64                                 1/2
Installing : jq-1.4-1.0.amzn1.x86_64                                      2/2
Verifying  : jq-libs-1.4-1.0.amzn1.x86_64                                 1/2
Verifying  : jq-1.4-1.0.amzn1.x86_64                                      2/2
Installed:
jq.x86_64 0:1.4-1.0.amzn1
Dependency Installed:
jq-libs.x86_64 0:1.4-1.0.amzn1
Complete!
++ jq --raw-output '.["NetworkInterfaces"][0]["NetworkInterfaceId"]'
++ echo '{
"NetworkInterfaces": [
{
"Status": "in-use",
"MacAddress": "12:4b:e4:7f:a5:72",
"SourceDestCheck": true,
"VpcId": "vpc-4d224e28",
"Description": null,
"Association": {
"PublicIp": "5...",
"IpOwnerId": "amazon"
},
"NetworkInterfaceId": "eni-04548229",
"PrivateIpAddresses": [
{
"Association": {
"PublicIp": "5...",
"IpOwnerId": "amazon"
},
"Primary": true,
"PrivateIpAddress": "<IP_ADDRESS>"
}
],
"RequesterManaged": false,
"AvailabilityZone": "us-east-1a",
"Attachment": {
"Status": "attached",
"DeviceIndex": 0,
"AttachTime": "2015-01-16T00:09:50.000Z",
"InstanceId": "i-163cc7e7",
"DeleteOnTermination": true,
"AttachmentId": "eni-attach-cb2a29b6",
"InstanceOwnerId": "876410254869"
},
"Groups": [
{
"GroupName": "nat-test-us-east-1-us-east-1a-SecurityGroup-1QGV5HGUTBZ71",
"GroupId": "sg-a011c5c4"
}
],
"SubnetId": "subnet-209e480b",
"OwnerId": "876410254869",
"TagSet": [],
"PrivateIpAddress": "<IP_ADDRESS>"
}
]
}'

NETWORK_INTERFACE_ID=eni-04548229
++ aws ec2 describe-route-tables --filters '{"Name":"route-table-id", "Values":["rtb-e8473a8d"]}'
DESCRIBE_ROUTE_TABLES_RESPONSE='{
"RouteTables": [
{
"Associations": [
{
"SubnetId": "subnet-d39147f8",
"RouteTableAssociationId": "rtbassoc-924010f7",
"Main": false,
"RouteTableId": "rtb-e8473a8d"
}
],
"RouteTableId": "rtb-e8473a8d",
"VpcId": "vpc-4d224e28",
"PropagatingVgws": [],
"Tags": [
{
"Value": "RouteTable",
"Key": "aws:cloudformation:logical-id"
},
{
"Value": "arn:aws:cloudformation:us-east-1:876410254869:stack/subnet-test-us-east-1-us-east-1a-private/6933a810-9d13-11e4-b6d3-5001b491380a",
"Key": "aws:cloudformation:stack-id"
},
{
"Value": "subnet-test-us-east-1-us-east-1a-private",
"Key": "aws:cloudformation:stack-name"
}
],
"Routes": [
{
"GatewayId": "local",
"DestinationCidrBlock": "<IP_ADDRESS>/21",
"State": "active"
}
]
}
]
}'
[[ {
"RouteTables": [
{
"Associations": [
{
"SubnetId": "subnet-d39147f8",
"RouteTableAssociationId": "rtbassoc-924010f7",
"Main": false,
"RouteTableId": "rtb-e8473a8d"
}
],
"RouteTableId": "rtb-e8473a8d",
"VpcId": "vpc-4d224e28",
"PropagatingVgws": [],
"Tags": [
{
"Value": "RouteTable",
"Key": "aws:cloudformation:logical-id"
},
{
"Value": "arn:aws:cloudformation:us-east-1:876410254869:stack/subnet-test-us-east-1-us-east-1a-private/6933a810-9d13-11e4-b6d3-5001b491380a",
"Key": "aws:cloudformation:stack-id"
},
{
"Value": "subnet-test-us-east-1-us-east-1a-private",
"Key": "aws:cloudformation:stack-name"
}
],
"Routes": [
{
"GatewayId": "local",
"DestinationCidrBlock": "<IP_ADDRESS>/21",
"State": "active"
}
]
}
]
} == \0.\0.\0.\0 ]]
aws ec2 delete-route --route-table-id rtb-e8473a8d --destination-cidr-block <IP_ADDRESS>/0
A client error (InvalidRoute.NotFound) occurred: no route with destination-cidr-block <IP_ADDRESS>/0 in route table rtb-e8473a8d

Ok it's a bug. You can get rid of it by redeploying your infrastructure with -c <IP_ADDRESS>/21 option.(<IP_ADDRESS>/21 will cause this error). Fixes will be dropped shortly.


[WIP] Issue 7 : pbs cluster init, class inheritance refactoring

So looking for comment here as this is my first pull request ever.
I've made some significant changes from the master branch:

As issue #7 first mentioned, I've remove the check on project being defined or not,
I've made the PBS header construction, but also the dask-worker command construction more flexible, as suggested by @jhamman,
I've moved some logic from PBS/SLURM classes to the JobQueueCluster parent class. It follows an abstract class pattern, but I've decided not to use ABC Metaclass for the sake of simplicity and python 2.7 easier compatibility as discussed with @mrocklin. So I've juste defined some abstract method by raising NotImplementedError in the JobQueueCluster class.

A question too on SLURMCluster. I've modified its implementation, but I've left the fixed header template logic here, as I am not a SLURM user. Anyway I still have some questioning about the CPU and memory resources in this class : we use only the processes (so nprocs) of dask here, but I would expect to see something like processes * nthreads; moreover, I don't see any memory limit in the template.
Finaly, I've not yet tested this in real condition, only some basic play with job script construction into a python terminal (and by the way I believe we should add some basic unit tests like that, don't you think?).

So I've pushed another commit with @mrocklin comments taken care of. Tell me how you feel about it.

Oh, And I've tested on our cluster, and it worked like a charm (even if I did not push the really far).

In general it's fine with me.  I'm also happy to defer to others' judgment.

http://docrep.readthedocs.io/en/latest/
Sent from my iPhone

On Mar 26, 2018, at 12:26 AM, Joe Hamman<EMAIL_ADDRESS>wrote:
@jhamman commented on this pull request.
In dask_jobqueue/core.py:

#Following class attributes should be overriden by extending classes.
submit_command = None
cancel_command = None

def init(self,

            name='dask-worker',

            threads=4,

            processes=6,

            memory='16GB',

            interface=None,

            death_timeout=60,

            local_directory=None,

            extra='',

            **kwargs

            ):

@rabernat - do I recall you introducing the xarray devs to a decorator approach to doc string templating? I can't seem to dig it up but perhaps someone knows what I'm talking about.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

@jhamman I've included docrep for docstrings depency as suggested by @rabernat.
Anything else?

Thanks @guillaumeeb - I hope to work on this a bit tomorrow so I'm merging now.

@rabernat I did not know about docrep, nice! Just curious have you used docrep in a project already? If that's the case I would be interested in hearing the kind of experience you had with it!

Docrep is used in this module: https://github.com/xgcm/xgcm/blob/master/xgcm/grid.py
It's useful when many different docstrings have to share very similar components...avoids repetition and thus potential errors.

Nice, thanks for the link!


Cannot connect to Elasticsearch with TLS 1.2 and specific cipher suites

The exporter connection to Elasticsearch fails when Elasticsearch is configured with X-Pack, basic auth, TLS 1.2 and the following xpack.ssl.cipher_suites:

TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256
TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256
TLS_DHE_RSA_WITH_AES_128_CBC_SHA256

Error messages:
<time> elastic elasticsearch_exporter: level=warn ts=<time> caller=nodes.go:1027 msg="failed to fetch and decode node stats" err="failed to get cluster health from https://elastic:9200//_nodes/_local/stats: Get https://<prom-user>:<prom-password>@elastic:9200/_nodes/_local/stats: remote error: tls: handshake failure"
<time> elastic elasticsearch_exporter: level=warn ts=<time> caller=nodes.go:1027 msg="failed to fetch and decode node stats" err="failed to get cluster health from https://elastic:9200//_nodes/_local/stats: Get https://<prom-user>:<prom-password>@elastic:9200/_nodes/_local/stats: dial tcp <ip>:9200: getsockopt: connection refused"

Hi Ben,
I don't have a corresponding setup in place, so I can't reproduce the issue. Can you make sure that the setup is correct? Can you curl the endpoints mentioned in the exporter log? Connection refused sounds more like a configuration mismatch than a bug to me, but I might be wrong

Hi Christoph,
I tested curl - that seems to work correctly. The important part is probably the 'tls: handshake failure': after re-deploying my test environment, that's the only error I see.

Hi Ben,
I'm currently on vacation with my kids and unfortunately can't really dig into the issue. You can find the supported cipher suites here: https://golang.org/pkg/crypto/tls/
Maybe we can find the issue there...

Hi Ben,
did my link to the supported ciphers help solving/identifying the issue?

Hi Christoph,
Unfortunately I didn't get it to work, but it seems the ciphers should be
supported on both ends. Possibly this is a mismatch in implementation
between Java/Go..
2018-08-06 10:49 GMT+02:00 Christoph Oelmueller<EMAIL_ADDRESS>
Hi Ben,
did my link to the supported ciphers help solving/identifying the issue?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/justwatchcom/elasticsearch_exporter/issues/158#issuecomment-410635562,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFvze4K5EtKDJSj6hNFvXNrcqjrpSFHsks5uOAMxgaJpZM4VMiUE
.

I'm sorry I can't help. I keeping this issue open, but currently don't have the time to further investigate it. As a workaround I'd propose to put a nginx in between the exporter and prometheus


Investigate Julia package for benchmarking

In issue #462, regression test is set up for comparing output of a run with the benchmark.
@visr suggests to add runtime into benchmark and make use one of existing Julia package to illustrate the benchmark result better

This one? https://github.com/JuliaCI/PkgBenchmark.jl
I'm aware of asv in Python, and it seems there's quite a lot involved into getting consistent and commensurate benchmarks.

PkgBenchmark.jl has been around for a while but doesn't seem very actively maintained. Also for CI integration it recommends an unmaintained package.
PkgJogger.jl seems like a better maintained alternative that has nicer local workflows, with easier CI integration.
Though less mature, Lilith's work in https://chairmarks.lilithhafner.com/v1.2.1/regressions seems very nice as well. Perhaps I'd try that first.
In terms of published benchmark tracking, there is https://github.com/SciML/SciMLBenchmarks.jl but comparing commits over time like https://lux.csail.mit.edu/benchmarks/ also looks nice.


webspoon-Generic database error(presto)

Hi Hiromu,
Hope your doing good !
When we are running job and transformation using webspoon, So by using pentaho engine, it's running as expected but the same when we are running through spark engine we are getting an error stating that "Driver class 'io.prestosql.jdbc.PrestoDriver' could not be found, make sure the 'Generic database' driver (jar file) is installed".
Looking forward for your input and advise on the same.
Thanks,
Girish

Thanks for reporting!
The issue sounds similar to https://github.com/HiromuHota/pentaho-kettle/issues/85 because

Works fine with PDI engine but not on Spark.
JDBC driver related

Let me look into this when I have time.

I tested myself using a Dockerized Presto (https://hub.docker.com/r/starburstdata/presto) and it worked.
Here is how I figured.

Place presto-jdbc-0.221.jar at $CATALINA_HOME/lib as described at https://github.com/HiromuHota/pentaho-kettle#third-party-plugins-and-jdbc-drivers
Use com.facebook.presto.jdbc.PrestoDriver instead of io.prestosql.jdbc.PrestoDriver as custom driver class name.

Close as I heard from @GirishAthanikar that he's resolved it himself.

Hi Hiromu,
Hope your doing good !
Thanks for looking into this issue and i tried above you mentioned solution of generic DB(Presto) and its working fine. So both solutions are working for my requirement.
Thanks,
Girish