ECS errors

Describe what happened:
I enabled the flag ECS_FARGATE in a ECS hosted Datadog agent (Datadog Agent v6.4.1) and since then, in logs I can see these errors:
...
[ AGENT ] 2018-08-09 15:30:41 UTC | ERROR | (ecs.go:76 in getTaskMetadata) | unable to decode task metadata response - json: cannot unmarshal string into Go value of type ecs.TaskMetadata
...
[ AGENT ] 2018-08-09 15:30:43 UTC | ERROR | (common.go:40 in GetTaskMetadata) | decoding task metadata failed - json: cannot unmarshal string into Go value of type ecs.TaskMetadata
[ AGENT ] 2018-08-09 15:30:43 UTC | ERROR | (ecs.go:94 in refreshServices) | failed to get task metadata, not refreshing services - json: cannot unmarshal string into Go value of type ecs.TaskMetadata
[ AGENT ] 2018-08-09 15:30:45 UTC | ERROR | (common.go:40 in GetTaskMetadata) | decoding task metadata failed - json: cannot unmarshal string into Go value of type ecs.TaskMetadata
[ AGENT ] 2018-08-09 15:30:45 UTC | ERROR | (ecs.go:94 in refreshServices) | failed to get task metadata, not refreshing services - json: cannot unmarshal string into Go value of type ecs.TaskMetadata
[ AGENT ] 2018-08-09 15:30:47 UTC | ERROR | (common.go:40 in GetTaskMetadata) | decoding task metadata failed - json: cannot unmarshal string into Go value of type ecs.TaskMetadata
[ AGENT ] 2018-08-09 15:30:47 UTC | ERROR | (ecs.go:94 in refreshServices) | failed to get task metadata, not refreshing services - json: cannot unmarshal string into Go value of type ecs.TaskMetadata
[ AGENT ] 2018-08-09 15:30:49 UTC | ERROR | (common.go:40 in GetTaskMetadata) | decoding task metadata failed - json: cannot unmarshal string into Go value of type ecs.TaskMetadata
[ AGENT ] 2018-08-09 15:30:49 UTC | ERROR | (ecs.go:94 in refreshServices) | failed to get task metadata, not refreshing services - json: cannot unmarshal string into Go value of type ecs.TaskMetadata
...
[ AGENT ] 2018-08-09 15:30:51 UTC | ERROR | (common.go:40 in GetTaskMetadata) | decoding task metadata failed - json: cannot unmarshal string into Go value of type ecs.TaskMetadata
[ AGENT ] 2018-08-09 15:30:51 UTC | ERROR | (ecs.go:94 in refreshServices) | failed to get task metadata, not refreshing services - json: cannot unmarshal string into Go value of type ecs.TaskMetadata
[ AGENT ] 2018-08-09 15:30:51 UTC | ERROR | (ecs.go:76 in getTaskMetadata) | unable to decode task metadata response - json: cannot unmarshal string into Go value of type ecs.TaskMetadata
[ AGENT ] 2018-08-09 15:30:51 UTC | ERROR | (autoconfig.go:413 in collect) | Unable to collect configurations from provider ECS container labels: json: cannot unmarshal string into Go value of type ecs.TaskMetadata
[ AGENT ] 2018-08-09 15:30:53 UTC | ERROR | (common.go:40 in GetTaskMetadata) | decoding task metadata failed - json: cannot unmarshal string into Go value of type ecs.TaskMetadata
[ AGENT ] 2018-08-09 15:30:53 UTC | ERROR | (ecs.go:94 in refreshServices) | failed to get task metadata, not refreshing services - json: cannot unmarshal string into Go value of type ecs.TaskMetadata
[ AGENT ] 2018-08-09 15:30:55 UTC | ERROR | (common.go:40 in GetTaskMetadata) | decoding task metadata failed - json: cannot unmarshal string into Go value of type ecs.TaskMetadata
[ AGENT ] 2018-08-09 15:30:55 UTC | ERROR | (ecs.go:94 in refreshServices) | failed to get task metadata, not refreshing services - json: cannot unmarshal string into Go value of type ecs.TaskMetadata
...
etc.

I don't know if it's a bug or not since I don't know the code but I thought that it could be a good idea to report it.
Here's a minimal Dockerrun.aws.json (my app is deployed thanks to a multi-docker ElasticBeanstalk) file to reproduce the problem:
{
  "AWSEBDockerrunVersion": 2,
  "volumes": [
    {
      "name": "docker_sock",
      "host": {
        "sourcePath": "/var/run/docker.sock"
      }
    },
    {
      "name": "proc",
      "host": {
        "sourcePath": "/proc/"
      }
    },
    {
      "name": "cgroup",
      "host": {
        "sourcePath": "/cgroup/"
      }
    }
  ],
  "containerDefinitions": [
    {
      "name": "dd-agent",
      "image": "datadog/agent:latest",
      "essential": true,
      "memory": 256,
      "portMappings": [
        {
          "containerPort": 8125
        },
        {
          "containerPort": 8126
        }
      ],
      "environment": [
        { "name": "ECS_FARGATE", "value": "true" },
        { "name": "DD_APM_ENABLED", "value": "true" }
      ],
      "mountPoints": [
        {
          "sourceVolume": "docker_sock",
          "containerPath": "/var/run/docker.sock",
          "readOnly": false
        },
        {
          "sourceVolume": "proc",
          "containerPath": "/host/proc",
          "readOnly": true
        },
        {
          "sourceVolume": "cgroup",
          "containerPath": "/host/sys/fs/cgroup",
          "readOnly": true
        }
      ]
    }
  ]
}

Jules

hi @guizmaii
The ECS_FARGATE envvar is tailored to the new AWS Fargate platform where we do not have access to the docker socket and use specific monitoring endpoints instead.
From what I read, Elastic Beanstalk uses the classic ECS platform on EC2 machines. For this setup, you should not set this envvar, and the agent will automatically use the docker socket for Autodiscovery, and the ECS metadata endpoint for additional tagging. The ECS documentation page describes the setup on classic ECS and should apply to your use case.
If this does fix not the issue, please contact our support team so we can reproduce your environment and guide you further into the agent setup.
Regards

Hi @xvello,
Thanks for your detailed answer. I'll change my configuration.
🙂


bug: wrong inferred types when combining transform and refine

Description
The inferred types in .refine() callback match the inferred return type of previous transform (Date) but during runtime the raw untransformed value is passed to the refine callback
Example 1:
const zoddate = () => z
        .string()
        .transform((s) => parseISO(s));
        .refine((d) => d.toString() !== 'Invalid Date', { // `d` has the inferred type `Date`, but is actually the raw string during runtime
            message: 'invalid date',
        })

Workaround 1:
const zoddate = () => z
        .string()
        .refine((d) => parseISO(d).toString() !== 'Invalid Date', {
            message: 'Invalid date',
        })
        .transform((s) => parseISO(s));

Example 2
export const QuerySchema = z
    .object({
        date_start: zoddate(),
        date_end: zoddate(),
    })
    .refine(({ date_start, date_end }) => {
        const start = startOfDay(date_start); // runtime error: `startOfDay` only accepts `Date` but during runtime the type is `string`
        const end = startOfDay(date_end); // runtime error: `startOfDay` only accepts `Date` but during runtime the type is `string`
        return isAfter(end, start);
    }, 'date_end must be after date_start')

Workaround 2
export const QuerySchema = z
    .object({
        date_start: zoddate(),
        date_end: zoddate(),
    })
    .refine(({ date_start, date_end }) => {
        // workaround by typecasting as any
        const start = startOfDay(parseISO(date_start as any));
        const end = startOfDay(parseISO(date_end as any));
        return isAfter(end, start);
    }, 'date_end must be after date_start')

Versions
zod ^3.10.0
typescript ^4.4.3

Can you test this on the latest version of Zod?

The inferred type is correct, the runtime value should have been Date all along. The parsing engine underwent a bunch of changes in 3.9 and some bugs crept in. Glad it's working for you now 👍


Refactor project structure and add Interfaces

Refactor the project interface for exposing the 3 interfaces (user, network and doc) as described on the new specs

Done


What RBAC permissions for live apply? Correct values for apiGroups and resources

I am trying to give a user permissions to do kpt live apply
When doing this, an error is returned

Installing inventory ResourceGroup CRD.
error: Type ResourceGroup CRD needs update. Please make sure you have the permission to update CRD then run kpt live install-resource-group.
error installing ResourceGroup crd

If I add a far too broad set of rules to their role, this then succeeds. I'd like to understand what permissions are needed to be able to complete the live apply
- apiGroups: ["*"]
    resources: ["*"]
    verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]

The file that live init has generated and appears to be triggering this error is as follows:
resourcegroup.yaml
apiVersion: kpt.dev/v1alpha1
kind: ResourceGroup
metadata:
  name: inventory-27342774
  namespace:  mynamespace
  labels:
    cli-utils.sigs.k8s.io/inventory-id: somenumbershere

If the ResourceGroup CRD is not installed, it tries to install it. In that case it would need privileges to add CRDs. My recommendation is that an administrator add the ResourceGroup CRD (for example, with kpt live install-resource-group. After that, the kpt tool itself only needs read on CRDs; since it will find the CRD already installed it will not try to install it again.
Of course, the user will also need permissions to add the resources in the namespaces that are being applied.


[BEAM-10894] Support for more pandas formats.

This builds on https://github.com/apache/beam/pull/12841

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

R: @chamikaramj

Rebased on https://github.com/apache/beam/pull/12841

LGTM. Thanks.

Robert is OOO today, I'll merge this so it can make it into 2.25


Cannot read property 'styles' of undefined

This commit https://github.com/reapp/reapp-ui/commit/61b1e38ba1360ef13b14151245de8387eef0984f#diff-1c94f8f2d2fe2dfa1fbf225cc13ac874R18 seems to introduce the bug. The context.theme might be undefined.

Could you give me the error message where this is happening?

Be sure to use the <Theme> helper when you upgrade your apps to 0.8, I'm going to add documentation to it today but the Kitchen/HN demo and new starter repo has it.

This should be fixed if you're using  or the new reapp-kit helpers. Let me know if not.


Turing.ml opens to dev instead of stable + other typos in references

https://turing.ml/ opens to https://turing.ml/dev instead of https://turing.ml/stable
The contributions link on the github readme is missing
The getting started page referenced by the github readme is the dev version instead of the stable version.
NOTE: I couldn't find any guidelines to opening issues in Turing.

Thanks! I think we currently don't have guidelines for issue. @yebai this might be a good idea to add for further reporting of issues.

This has been fixed.


EventsQuery interface and LevelIndex enhancement

This PR contains a new interface method, EventsQuery, which is primarily used to query for filtered events in order to enable SelectiveSync.
EventLogLevel:
EventLogLevel now takes an additional property indexes to it's append() function. These indexes are key-value indexes in the same format that we use withe the MessageStore index.
In order to enable a filtered query for items like RecordsDelete, PermissionsGrant and PermissionsRevoke by additional indexes not currently needed in the MessageStore we added constructAdditionalIndexes methods to the proper handlers. This will allow, for example, to filter for both RecordsWrite and RecordsDelete events based on a protocolPath or schema
IndexLevel:
To enable this functionality IndexLevel has been enhanced to become a more general purpose LevelDB Index that supports sorting as well as a cursor pointer property.
When appending data to the IndexLevel store, we save the sorted index values in a reverse lookup. During a query when a cursor value is passed, this lookup is used to re create a starting index for the individual filtered properties.
note
Although IndexLevel has been enhanced to support and a cursor pointer generically, for each sortable index the entire index grows in size. For that reason MessageStore is only indexing by the messageTimestamp field and is still sorting/paginating outside of the IndexLevel query as it has been doing.
Additional tests were added to IndexLevel as well as some changes to RecordsQuery tests and MessageStore tests to catch some missing edge cases.

Codecov Report

Merging #559 (ebe402d) into main (d79901a) will increase coverage by 0.29%.
Report is 1 commits behind head on main.
The diff coverage is 99.85%.

@@            Coverage Diff             @@
##             main     #559      +/-   ##
==========================================
+ Coverage   97.82%   98.11%   +0.29%
==========================================
  Files          66       68       +2
  Lines        8353     8587     +234
  Branches     1197     1235      +38
==========================================
+ Hits         8171     8425     +254
+ Misses        176      154      -22
- Partials        6        8       +2

Files
Coverage Δ

src/core/auth.ts
100.00% <100.00%> (ø)

src/dwn.ts
100.00% <100.00%> (ø)

src/event-log/event-log-level.ts
100.00% <100.00%> (+3.30%)
:arrow_up:

src/handlers/events-query.ts
100.00% <100.00%> (ø)

src/handlers/permissions-grant.ts
100.00% <100.00%> (ø)

src/handlers/permissions-request.ts
100.00% <100.00%> (ø)

src/handlers/permissions-revoke.ts
97.26% <100.00%> (+0.59%)
:arrow_up:

src/handlers/protocols-configure.ts
100.00% <100.00%> (ø)

src/handlers/records-delete.ts
100.00% <100.00%> (ø)

src/handlers/records-query.ts
100.00% <100.00%> (ø)

... and 7 more

... and 2 files with indirect coverage changes

@thehenrytsai This is ready for another look, there are still tests missing but I think it could use a review at this point in time.
As we discussed there are 2 strategies for querying:

A linear scan on the sorted property checking each message and returning when the requested limit is reached. If a cursor is passed, it's used as a starting point for the linear scan.

A filtered query that does a more scoped filter on each of the provided properties, this is not sorted and after the matches are all returned, it is then sorted and paginated according to the sort property and cursor/limit.

The "black box" function we talked about is searchFilterSelector within the IndexLevel class.
Currently this is untested (needs testing before this merges), and is only supporting equality and OneOf filters.
This function might be simplified for this initial push to merge, but this would be where improvements could be made along the way for filtering.

Closing this PR in favor of a newer one.


Unusable dictionary fix

dictionaries edited by the dictionary editor were not useable, because the first word in the dictionary must be the word count of the dictionary
create and delete functions are allowed to access to tpl and aff files too

No tests, such a shame


[Cosmos v4] Analyze possible dead code and cleanup if really dead

var metrics assigned but not used
https://github.com/Azure/azure-sdk-for-java/blob/1300def7a6c810eb0b9f3a9fe175316e7f4f98f7/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/QueryMetrics.java#L252
var attachmentId declared but not used
https://github.com/Azure/azure-sdk-for-java/blob/1300def7a6c810eb0b9f3a9fe175316e7f4f98f7/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/PathsHelper.java#L382
var maxReplicaSetSize  assigned but  not used
https://github.com/Azure/azure-sdk-for-java/blob/1300def7a6c810eb0b9f3a9fe175316e7f4f98f7/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/ReplicationPolicy.java#L49
var retryDelay   assigned but not used
https://github.com/Azure/azure-sdk-for-java/blob/1300def7a6c810eb0b9f3a9fe175316e7f4f98f7/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/ResourceThrottleRetryPolicy.java#L51
var test1 assigned but not used
https://github.com/Azure/azure-sdk-for-java/blob/1300def7a6c810eb0b9f3a9fe175316e7f4f98f7/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/ResourceTokenAuthorizationHelper.java#L173
var timeout assigned but not used
https://github.com/Azure/azure-sdk-for-java/blob/1300def7a6c810eb0b9f3a9fe175316e7f4f98f7/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/directconnectivity/GoneAndRetryWithRetryPolicy.java#L58
var ifNoneMatch  assigned but not used
https://github.com/Azure/azure-sdk-for-java/blob/1300def7a6c810eb0b9f3a9fe175316e7f4f98f7/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/directconnectivity/StoreReader.java#L592
var maxPageSize  assigned but not used
https://github.com/Azure/azure-sdk-for-java/blob/1300def7a6c810eb0b9f3a9fe175316e7f4f98f7/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/directconnectivity/StoreReader.java#L602
var unavailabilityInfoHolder assigned but not used
https://github.com/Azure/azure-sdk-for-java/blob/1300def7a6c810eb0b9f3a9fe175316e7f4f98f7/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/routing/LocationCache.java#L320

Integer maxReplicaSetSize = super.getInt(Constants.Properties.MAX_REPLICA_SET_SIZE);   -> Does not exist in SDK anymore
Duration retryDelay = Duration.ZERO;   -> retryDelay is being used
Duration timeout = Duration.ofSeconds(0);  -> timeout is being used
Utils.ValueHolder unavailabilityInfoHolder = new Utils.ValueHolder<>(); --> unavailabilityInfoHolder is being used

PR has merged.


CYBERPUNK PROGRAMMERS-CRYPTOCURRENCY RECOVERY EXPERT

CYBERPUNK PROGRAMMERS-CRYPTOCURRENCY RECOVERY EXPERT
If you are interested in investing in crypto or you have digital assets already, you'll want to know how the most common types of crypto scams work, how to spot them and what you can do if you become a victim. Examples of scams are giveaways, hustles involving new romance, phishing, extortion emails, fake company alerts, blackmail, "rug pulls," and may involve fake mining apps or networks. Signs of crypto scams include poorly written white papers, excessive marketing pushes, and get-rich-quick claims. There are several actions to take to steer clear of being scammed. Ignore requests to give out your private cryptocurrency keys. Those keys control your crypto and wallet access, and no one needs them for a legitimate cryptocurrency transaction.  Lastly, don't engage with investment managers who contact you and say they can grow your money quickly. Crypto recovery agencies are the best places to contact if you suspect you’ve been the victim of a scam. CyberPunk Programmers offers exclusive recovery services which are tailored for your case. Visit the website cyberpunkers dot org and use their online complaint forms to seek help:

SING IT LOUD: HOW I GOT MY STOLEN BITCOIN WORTH OF $90,000. WITH THE HELP OF WIZARD WEB RECOVERY.
I can still vividly recall the gut-wrenching moment when I discovered that my beloved bitcoin wallet had been infiltrated by hackers, leaving it completely void of the hard-earned cryptocurrency I had accumulated over the years. Watching my life savings of $90,000 dollars evaporate before my eyes was a blow that shook me to my core. As I sat there, stunned and disheartened by the sight of a balance of zero, I resigned myself to the fact that my precious coins were lost forever. But as the initial shock subsided, a flame of determination ignited within me. I embarked on a quest through the depths of the internet in search of a way to reclaim what was stolen from me. And that's when fate led me to the doorstep of Wizard Web Recovery, a beacon of hope in the dark realm of cybercrime. At first, I was hesitant, skeptical of their promises to retrieve lost digital assets. But as I engaged in correspondence with their skilled security expert, a glimmer of hope began to flicker within me.  Little did I know that this was just the beginning of an epic journey filled with twists and turns, leading me down a path towards redemption and reclaiming what was rightfully mine. Over the next few weeks, I worked closely with the Wizard web recovery team, providing as many details as I could about my stolen wallet and transactions. They employed advanced blockchain forensics, analyzing the cryptographic signatures and transaction histories to trace where the funds went after leaving my wallet. Miraculously, through their tireless efforts, the Wizard web recovery team tracked down the thief's wallet and identified the weak point where the funds could be recovered. They swiftly coordinated with the cryptocurrency exchange to freeze the assets before the hacker could make another move. Before I knew it, I had a message from Wizard web recovery support confirming that they had successfully retrieved and returned my $90,000 dollars worth of bitcoin. I literally jumped for joy and sang out loud when I saw the balance restored in my wallet. Thanks to the brilliance of the Wizard Web Recovery team, I had gotten back cryptocurrency that I was certain was gone forever. I will be eternally grateful for the day I found their service online - They turned what could have been a life-altering financial disaster into an uplifting success story.
You can easily reach them via the following.
Email - ( wizardwebrecovery @ programmer . net )
Website - (  www. wizardwebrecovery . net )

SPYWARE CYBER-LEGIT CRYPTO RECOVERY AGENCY
In the wake of losing access to my Bitcoin trading accounts due to a phishing email mishap, I found myself in a state of panic and despair. Little did I know, this single click would cost me dearly, resulting in the loss of access to my Bitcoin trading accounts and a staggering $30,000 worth of Bitcoin. However, my fortunes took a swift turn for the better when I turned to Spyware Cyber Tool for assistance. With a sense of urgency driving my actions, I initiated the Spyware Cyber platform, hoping against hope that it could help me reclaim what was rightfully mine. To my amazement, within just two hours, Spyware Cyber had successfully tracked down the individuals responsible for the phishing scam and ethically recovered my account with the Bitcoin still intact.Spyware Cyber unparalleled tracking capabilities and ethical approach to recovery set it apart from other tools on the market. Using advanced algorithms and extensive network scanning, the platform identified the perpetrators behind the phishing scheme, leaving no stone unturned in its quest for justice. Armed with irrefutable evidence gathered by Spyware Cyber, I was able to take decisive action against the culprits, holding them accountable for their actions and ensuring that they faced the consequences of their crimes. The recovery process was conducted swiftly and efficiently, thanks to Spyware Cyber's seamless integration with cryptocurrency exchanges and its commitment to ethical practices. Throughout the ordeal,Spyware Cyber provided me with peace of mind and reassurance, knowing that I had a powerful ally by my side in the fight against cybercrime. Its proactive approach to security and lightning-fast response time gave me the confidence to navigate the digital landscape with renewed vigor and resilience. In the end, Spyware Cyber not only helped me recover my Bitcoin trading accounts but also restored my faith in the power of technology to safeguard our digital assets. Its swift and ethical recovery process served as a beacon of hope in a sea of uncertainty, proving that with the right tools and determination, anything is possible. Thanks to Spyware Cyber, I emerged from the ordeal stronger and more resilient than ever before, ready to face whatever challenges the future may hold. It's a testament to the incredible capabilities of modern technology and the unwavering commitment of those who fight tirelessly to protect our online security. Your can also bear witness to my testimony, reach Spyware Cyber via:
Whatsapp: +1<PHONE_NUMBER>
<EMAIL_ADDRESS>Telegram:Spyware Cyber

NEED A RELIABLE BITCOIN RECOVERY EXPERT @ PROFICIENTEXPERT  @  CONSULTANT  .  COM
Praise be to the mighty Proficient Expert Consultant! Behold, they have triumphantly regained my stolen treasure of bitcoin worth a staggering $62,000. Let us bow before their mystical powers! In a moment of despair, I discovered my bitcoin hoard had been plundered by dastardly hackers. As a devoted follower of cryptocurrency, I had amassed a fortune of 12 bitcoins, now valued at $62,000. My heart sank as I faced the violation of losing my life savings. Just when all seemed lost, a trusted companion revealed the existence of Proficient Expert Consultant - a band of noble hackers specializing in the recovery of stolen digital wealth. With their swift action, they delved into the depths of the blockchain ledger, following the trail of my pilfered coins. Through their expert sleuthing and arcane knowledge of cryptocurrency, they pinpointed the malefactor's lair, reclaiming what was rightfully mine. By harnessing their incredible technological prowess, they embarked on a complex mission to reclaim the thief's wallet and return my precious bitcoin to its rightful owner - me! I was left speechless, amazed at the sight of my bitcoin balance being replenished before my very eyes. The sense of relief that washed over me was overwhelming. Proficient Expert Consultant has gone above and beyond to rescue my hard-earned money, which I thought was lost forever. Their mastery of intricate techniques has truly been a game-changer for my finances. These modern-day superheroes of the cryptocurrency realm deserve all the praise in the world! I will be shouting their praises from the rooftops for their fearless and skillful efforts. Talk with Proficient Expert Consultant<EMAIL_ADDRESS>or WhatsApp:+1(515)800-2808

CONTACT ADRIAN LAMO HACKER via the website: https://adrianlamohackpro.online/   Here’s their Available WhatsApp number below +1 (909) 739‑0269 I decided to hire ADRIAN LAMO HACKER on my case after I lost £170k to a crypto investment company I came about online, I read many testimonies about ADRIAN LAMO HACKER while I was searching for recovery firms to help me retrieve back my lost investment funds which were excellent testimonies about their recovery services. They were proactive with their approach on our first interaction in which they assured me of a successful retrieval of my lost investment funds explaining their recovery process to me and clearing any doubts I had about the recovery, I registered with the investment company and was able to make my withdrawal a first which spurred me into investing more funds with them after which I wanted to make more withdrawal which they declined abruptly. If ever you wish to know more about my story then trust me you will experience hacking events of wanting to trust or not trust is a thing that can't be explained by anybody like me who has experienced what I felt retrieving my funds with their exceptional and trustworthy hackers. The moment you don't trust yourself trusting them on your case because I retrieved mine in a mind-blowing email from ADRIAN LAMO HACKER " REQUESTING I SEND MY WALLET " which was shocking to me that my lost investment funds had been retrieved from those scumbags in The Internet posing as crypto investment companies use peoples trust and turn their life into shackles, from investing hundreds of dollars to investing thousands of dollars my hard earned fund ending up losing everything I had worked for all my life. ADRIAN LAMO HACKER made me shed tears of joy and happiness at what they achieved in my case, the eventful retrieval of my lost investment funds of £170k back is something I will always be grateful for ADRIAN LAMO HACKER.

I cannot begin to describe the immense relief and joy I felt when I discovered FAYED HACKER and their incredible ability to retrieve stolen cryptocurrency. Just a few weeks ago, I was distraught after hackers managed to steal 82,000 dollars worth of crypto from my digital wallet. I felt helpless, certain that my hard-earned savings were gone forever. In a moment of sheer desperation, I turned to the vast expanse of the internet in search of a way to reclaim my lost crypto. Through the twists and turns of cyberspace, I discovered the mysterious FAYED HACKER recovery and their legendary reputation for restoring stolen digital assets. Hesitant yet filled with a glimmer of hope, I bravely reached out to their expert team and shared my harrowing tale. The compassionate wizards at FAYED HACKER listened intently, promising to wield their magic and retrieve my precious funds. With a heart full of both caution and excitement, I made the daring decision to place my fate in their hands. Crowned with determination, I embarked on this daring quest to reclaim what was rightfully mine. The swift and skillful FAYED HACKER experts sprang into action, harnessing their technical prowess to track down my stolen crypto. Within days, they uncovered my funds and triumphantly restored the entire $82,000 worth of cryptocurrency back into my custody! I was left awe-struck and jubilant. I cannot thank FAYED HACKER enough for their diligence and skill in getting back my stolen crypto. They are true experts in digital asset recovery, and I will be singing their praises for a long time to come. When hackers took my savings, I felt powerless and afraid. But this incredible company gave me back hope and security. I will be forever grateful. This recovery saga restored my faith in the wild world of cryptocurrency. It proved that with the right tools and a sprinkle of magic, even the most dire situations can have a fairy-tale ending. Cheers to reclaiming trust in the crypto realm. Get FAYED HACKER on Email :   fayedexperthack (AT) solution4u (DOT) com
TELEGRAM:@fayedexperthacker

Over the years, I had made significant investments totaling more than $92,000 in the Bitcoin cryptocurrency. When I checked my digital wallet one day, I was shocked to see that hackers had taken all of my Bitcoin investment. When I realized that my life savings were vanished overnight, I felt sick to my stomach. I went into panic mode trying to figure out how to get my stolen cryptocurrency back when the immediate shock subsided. I got in touch with the Bitcoin exchange I had previously used to ask for assistance. Regretfully, they were powerless to take any action. I then began searching anxiously for information on "how to recover stolen Bitcoin" online and discovered Lee Ultimate Hacker, a business that specialized in doing just that. When I was out of options, I contacted Lee Ultimate support staff, who were very helpful and confident, and guided me through their proprietary process and technology to track where my stolen funds had transferred to. Ultimately, using their sophisticated crypto tracking methods, Lee Ultimate successfully recovered and returned my $92,000 in stolen Bitcoin. I was ecstatic to receive back my life savings, which I had assumed were lost forever. My stolen cryptocurrency was saved by the LEE ULTIMATE HACKERS team, who I felt were heroes. I learned from this experience to secure digital assets with more caution and that decent individuals are putting a lot of effort into helping victims of cryptocurrency theft. I have no words to express my gratitude to Lee Ultimate for their valiant efforts and for returning my misplaced money when all appeared lost. You may relax knowing that Lee Ultimate Hacker's team of professionals is working nonstop to assist you in getting your hard-earned money back.  Speak with a representative by using: LEEULTIMATEHACKER@ AOL. COM or<EMAIL_ADDRESS>telegram:LEEULTIMATE or wh@tsapp +1  (715) 314  -  9248 https://leeultimatehacker.com Thank you.

Cybersecurity risks are significant in the modern digital era since hackers are always developing new strategies to exploit weaknesses. Safeguarding sensitive data and assets requires an understanding of the threat landscape. Cyber attacks often leave subtle clues before the full extent of the breach becomes apparent. Recognizing these initial signs can help individuals and organizations respond promptly to mitigate further damage. The financial repercussions of a cyber attack can be staggering, as evidenced by the loss of $65,000 in Bitcoin in this case. Such losses not only impact the victim directly but also serve as a stark reminder of the importance of robust cybersecurity measures. Beyond the tangible financial loss, cyber attacks can take a toll on the emotional and psychological well-being of the victim. Feelings of violation, vulnerability, and anger are common reactions to such traumatic incidents. After a cyberattack, Trust Geeks Hack Expert shows up as a ray of hope, specializing in locating hackers and retrieving stolen property. Their knowledge and promptness can go a long way toward undoing the damage that malevolent individuals have created. Trust Geeks Hack Expert uses clever methods to track down the hackers' wallets using state-of-the-art technology and investigative skills, which may result in the return of assets that were pilfered. When faced with the aftermath of a cyber attack that drained my Bitcoin account of $65,000, turning to Trust Geeks Hack Expert was a game-changer. Their recovery process involved sophisticated tracking methods to trace the hackers' wallets and retrieve the stolen funds. In a surprising turn of events, Trust Geeks Hack Expert successfully recovered the $65,000 stolen from my Bitcoin account. Their expertise and persistence in navigating the complex web of cybercrime led to a triumphant outcome, restoring my funds and peace of mind. This cyber attack served as a wake-up call, exposing the vulnerabilities in my existing cybersecurity measures. It highlighted the importance of staying vigilant, regularly updating security systems, and implementing multi-factor authentication to prevent future breaches. Moving forward, I have learned the critical lesson of bolstering cybersecurity protocols. By investing in robust encryption, conducting regular security audits, and educating myself on emerging cyber threats, I aim to fortify my defenses against potential attacks. Email Trust Geeks Hack Expert recovery now via Email<EMAIL_ADDRESS>& Website https://trustgeekshackexpert.com/

In a world filled with opportunities and risks, the realm of investments can be both exhilarating and treacherous. My spouse and I learned this the hard way when we fell victim to an internet con artist masquerading as an expert in investments. What started as a promising venture quickly turned into a nightmare as we realized we had been duped out of a staggering $109,000. The con artist, adept at manipulation and deceit, led us down a path of false promises and empty assurances. When we attempted to withdraw our funds, we were met with a barrage of excuses and demands for more money. It was a devastating blow, one that left us feeling helpless and betrayed. Amidst the despair, a ray of hope emerged in the form of Daniel Meuli Web Recovery. Their reputation as specialized experts in tracing lost Bitcoin wallets and cryptocurrency recovery preceded them, and we knew we had to reach out to them for help. It was during our search for information on how to recover lost funds that we stumbled upon their name, and it proved to be a pivotal moment in our journey to reclaim what was rightfully ours. From the moment we contacted  Daniel Meuli Web Recovery, we were met with professionalism, empathy, and a genuine desire to assist. They listened to our story with compassion and understanding, assuring us that there was still hope for recovery. With their expertise and guidance, we journeyed to reclaim our lost funds. Despite the complexity of the situation,  Daniel Meuli Web Recovery approached the task with unwavering determination and precision. Their team of experts meticulously analyzed our case's circumstances, leaving no stone unturned in their quest for recovery. To our immense relief and gratitude,  Daniel Meuli Web Recovery succeeded in retrieving our lost monies—a feat we once believed impossible. Their dedication, expertise, and unwavering commitment to their clients were nothing short of remarkable, and we are forever grateful for their assistance during our time of need. If you ever find yourself in a similar predicament, grappling with the aftermath of financial fraud or cryptocurrency theft, don't lose hope. Reach out to WWw.danielmeulirecoverywizard.online and let them guide you toward a solution. With their expertise and unwavering support, you too can reclaim what's rightfully yours and emerge stronger than ever before. Don't hesitate to contact  Daniel Meuli Web Recovery for recovery services.

Imagine this: you've painstakingly accumulated $97,000 worth of Bitcoin, only to see it vanish into the digital abyss at the hands of cunning scammers. It's a devastating blow, leaving you feeling helpless and betrayed. But fear not, for Lee Ultimate Hacker is here to turn the tide in your favor. After conducting extensive research on cryptocurrency recovery options, I stumbled upon Lee Ultimate Hacker, and it proved to be the most suitable choice for the daunting task at hand. Despite my initial skepticism, they shattered my doubts by successfully retrieving $92,000 of the lost Bitcoin—a feat I once deemed impossible. From the moment I reached out to Lee Ultimate Hacker and provided them with all the pertinent information about the fraudulent transaction, they sprang into action with unwavering determination. True to their word, they delivered on their promise to recover the lost Bitcoin within an impressive timeframe of 24 to 72 hours. Their professionalism, expertise, and commitment to their clients were truly commendable, transforming what seemed like an insurmountable ordeal into a resounding triumph. In my eyes, the investment of both time and money was more than justified by the remarkable outcome achieved by Lee Ultimate Hacker. So, if you've fallen victim to cryptocurrency scams and are grappling with the anguish of lost funds, don't despair. Reach out to Lee Ultimate Hacker and let them work their magic. Their track record of success speaks for itself, and with their assistance, you can reclaim what's rightfully yours and emerge stronger than ever before. Don't let the darkness of cybercrime overshadow your financial future. Take a stand against fraudsters with the help of Lee Ultimate Hacker, and witness the transformation from despair to triumph. Your journey to recovery starts here. LEEULTIMATEHACKER@ AOL. COM or Support @ leeultimatehacker . com. telegram:LEEULTIMATE or wh@tsapp +1  (715) 314  -  9248 https://leeultimatehacker.com Thank you.

In the realm of cryptocurrency, security is paramount. Yet, despite our best efforts to safeguard our digital assets, the threat of hacking looms ever-present. I, too, fell victim to this insidious menace when my Trust Wallet and Coinbase accounts were compromised, leaving me devastated and powerless. However, in my darkest hour, a glimmer of hope emerged in the form of Digital Web Recovery. With their expertise and unwavering commitment to their clients, they proved to be my guiding light in the tumultuous sea of cybercrime. I entrusted them with the monumental task of recovering my stolen cryptocurrency, and they exceeded all expectations by delivering a staggering result—100% of my assets were restored. The journey to recovery was not without its challenges, but with Digital Web Recovery by my side, I felt empowered and supported every step of the way. Their team of dedicated professionals left no stone unturned in their quest to reclaim what was rightfully mine, employing advanced techniques and strategies to outwit the hackers and restore balance to my digital portfolio. What truly sets Digital Web Recovery apart is not just their technical prowess, but their unwavering commitment to their clients' well-being. From the moment I reached out to them for assistance, I was met with empathy, understanding, and a genuine desire to help. They listened to my concerns, addressed my questions, and provided reassurance when I needed it most. Thanks to the tireless efforts of Digital Web Recovery, I was not only able to recover my stolen assets but also regain my sense of security and peace of mind. Their professionalism, transparency, and dedication to their craft were nothing short of exemplary, and I am forever grateful for their assistance during my time of need. If you find yourself in a similar predicament, grappling with the aftermath of a cryptocurrency hack, do not hesitate to reach out to Digital Web Recovery. Their track record of success speaks for itself, and with their help, you can reclaim what's rightfully yours and emerge stronger than ever before. website; https://digitalwebrecovery.com/ Your journey to recovery starts here, with a team you can trust to deliver results and restore your faith in the world of cryptocurrency. Don't let the actions of hackers dictate your financial future—take back control with the help of Digital Web Recovery. Contact Info;
WhatsApp +14033060588
Telegram user; @digitalwebrecovery
<EMAIL_ADDRESS>


amp: Join merged style tags

This fixes a sneaky little bug. 😄
Prior to this change, CSS blocks were joined via a , which was sometimes valid, but produced unexpected output/display.

We can add one. Never hurts!


SQLite Error 5: 'database is locked

EDIT 11/11/2020: This issue should now be fixed on newly created BaGet databases. Older installations can circumvent this issue by enabling write-ahead logging on your SQLite database. You can check if your SQLite database has write-ahead logging enabled by running the query PRAGMA journal_mode and getting the result wal. If necessary, you can enable write-ahead logging by running PRAGMA journal_mode=WAL;.

 Original bug report...
I'm trying BaGet with SqlLite backend and I'm seeing these error messages in the log, not sure if this is expected. Maybe this can be improved?
fail: Microsoft.EntityFrameworkCore.Update[10000]
      An exception occurred in the database while saving changes for context type 'BaGet.Entities.SqliteContext'.
      Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 5: 'database is locked'.
         at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
         at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior)
         at Microsoft.Data.Sqlite.SqliteCommand.ExecuteNonQuery()
         at Microsoft.Data.Sqlite.SqliteConnectionExtensions.ExecuteNonQuery(SqliteConnection connection, String commandText)
         at Microsoft.Data.Sqlite.SqliteTransaction..ctor(SqliteConnection connection, IsolationLevel isolationLevel)
         at Microsoft.Data.Sqlite.SqliteConnection.BeginTransaction(IsolationLevel isolationLevel)
         at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.BeginTransactionWithNoPreconditions(IsolationLevel isolationLevel)
         at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.BeginTransactionAsync(IsolationLevel isolationLevel, CancellationToken cancellationToken)
         at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.BeginTransactionAsync(CancellationToken cancellationToken)
         at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(DbContext _, ValueTuple`2 parameters, CancellationToken cancellationToken)
         at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IReadOnlyList`1 entriesToSave, CancellationToken cancellationToken)
         at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
         at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 5: 'database is locked'.
   at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior)
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteNonQuery()
   at Microsoft.Data.Sqlite.SqliteConnectionExtensions.ExecuteNonQuery(SqliteConnection connection, String commandText)
   at Microsoft.Data.Sqlite.SqliteTransaction..ctor(SqliteConnection connection, IsolationLevel isolationLevel)
   at Microsoft.Data.Sqlite.SqliteConnection.BeginTransaction(IsolationLevel isolationLevel)
   at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.BeginTransactionWithNoPreconditions(IsolationLevel isolationLevel)
   at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.BeginTransactionAsync(IsolationLevel isolationLevel, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.BeginTransactionAsync(CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(DbContext _, ValueTuple`2 parameters, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IReadOnlyList`1 entriesToSave, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
fail: Microsoft.EntityFrameworkCore.Update[10000]
      An exception occurred in the database while saving changes for context type 'BaGet.Entities.SqliteContext'.
      Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 5: 'database is locked'.
         at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
         at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior)
         at Microsoft.Data.Sqlite.SqliteCommand.ExecuteNonQuery()
         at Microsoft.Data.Sqlite.SqliteConnectionExtensions.ExecuteNonQuery(SqliteConnection connection, String commandText)
         at Microsoft.Data.Sqlite.SqliteTransaction..ctor(SqliteConnection connection, IsolationLevel isolationLevel)
         at Microsoft.Data.Sqlite.SqliteConnection.BeginTransaction(IsolationLevel isolationLevel)
         at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.BeginTransactionWithNoPreconditions(IsolationLevel isolationLevel)
         at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.BeginTransactionAsync(IsolationLevel isolationLevel, CancellationToken cancellationToken)
         at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.BeginTransactionAsync(CancellationToken cancellationToken)
         at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(DbContext _, ValueTuple`2 parameters, CancellationToken cancellationToken)
         at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IReadOnlyList`1 entriesToSave, CancellationToken cancellationToken)
         at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
         at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 5: 'database is locked'.
   at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior)
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteNonQuery()
   at Microsoft.Data.Sqlite.SqliteConnectionExtensions.ExecuteNonQuery(SqliteConnection connection, String commandText)
   at Microsoft.Data.Sqlite.SqliteTransaction..ctor(SqliteConnection connection, IsolationLevel isolationLevel)
   at Microsoft.Data.Sqlite.SqliteConnection.BeginTransaction(IsolationLevel isolationLevel)
   at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.BeginTransactionWithNoPreconditions(IsolationLevel isolationLevel)
   at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.BeginTransactionAsync(IsolationLevel isolationLevel, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.BeginTransactionAsync(CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(DbContext _, ValueTuple`2 parameters, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IReadOnlyList`1 entriesToSave, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
fail: Microsoft.EntityFrameworkCore.Update[10000]
      An exception occurred in the database while saving changes for context type 'BaGet.Entities.SqliteContext'.
      Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 5: 'database is locked'.
         at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
         at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior)
         at Microsoft.Data.Sqlite.SqliteCommand.ExecuteNonQuery()
         at Microsoft.Data.Sqlite.SqliteConnectionExtensions.ExecuteNonQuery(SqliteConnection connection, String commandText)
         at Microsoft.Data.Sqlite.SqliteTransaction..ctor(SqliteConnection connection, IsolationLevel isolationLevel)
         at Microsoft.Data.Sqlite.SqliteConnection.BeginTransaction(IsolationLevel isolationLevel)
         at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.BeginTransactionWithNoPreconditions(IsolationLevel isolationLevel)
         at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.BeginTransactionAsync(IsolationLevel isolationLevel, CancellationToken cancellationToken)
         at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.BeginTransactionAsync(CancellationToken cancellationToken)
         at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(DbContext _, ValueTuple`2 parameters, CancellationToken cancellationToken)
         at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IReadOnlyList`1 entriesToSave, CancellationToken cancellationToken)
         at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
         at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 5: 'database is locked'.
   at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior)
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteNonQuery()
   at Microsoft.Data.Sqlite.SqliteConnectionExtensions.ExecuteNonQuery(SqliteConnection connection, String commandText)
   at Microsoft.Data.Sqlite.SqliteTransaction..ctor(SqliteConnection connection, IsolationLevel isolationLevel)
   at Microsoft.Data.Sqlite.SqliteConnection.BeginTransaction(IsolationLevel isolationLevel)
   at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.BeginTransactionWithNoPreconditions(IsolationLevel isolationLevel)
   at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.BeginTransactionAsync(IsolationLevel isolationLevel, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.BeginTransactionAsync(CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(DbContext _, ValueTuple`2 parameters, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IReadOnlyList`1 entriesToSave, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
fail: Microsoft.EntityFrameworkCore.Update[10000]
      An exception occurred in the database while saving changes for context type 'BaGet.Entities.SqliteContext'.
      Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 5: 'database is locked'.
         at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
         at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior)
         at Microsoft.Data.Sqlite.SqliteCommand.ExecuteNonQuery()
         at Microsoft.Data.Sqlite.SqliteConnectionExtensions.ExecuteNonQuery(SqliteConnection connection, String commandText)
         at Microsoft.Data.Sqlite.SqliteTransaction..ctor(SqliteConnection connection, IsolationLevel isolationLevel)
         at Microsoft.Data.Sqlite.SqliteConnection.BeginTransaction(IsolationLevel isolationLevel)
         at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.BeginTransactionWithNoPreconditions(IsolationLevel isolationLevel)
         at
...

Weird, I've never seen that before. How are you running the app? What operating system are you using?  .NET SDK?

After the error messages finish, BaGet website is no longer accessible.
I had allocating a really low amount of RAM for the container (128MB). Allocating more (512MB) made the errors go away.

People can find this issue if they hit it.

Sounds good. Closing this off for now.

I also get this exception during downloading mirrored packages from nuget after some time:
fail: Microsoft.EntityFrameworkCore.Update[10000]
      An exception occurred in the database while saving changes for context type 'BaGet.Database.Sqlite.SqliteContext'.
      Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 5: 'database is locked'.
         at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
         at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior)
         at Microsoft.Data.Sqlite.SqliteCommand.ExecuteNonQuery()
         at Microsoft.Data.Sqlite.SqliteConnectionExtensions.ExecuteNonQuery(SqliteConnection connection, String commandText)
         at Microsoft.Data.Sqlite.SqliteTransaction..ctor(SqliteConnection connection, IsolationLevel isolationLevel)
         at Microsoft.Data.Sqlite.SqliteConnection.BeginTransaction(IsolationLevel isolationLevel)
         at System.Data.Common.DbConnection.BeginTransaction(IsolationLevel isolationLevel)
         at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.BeginTransactionWithNoPreconditions(IsolationLevel isolationLevel)
         at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.BeginTransactionAsync(IsolationLevel isolationLevel, CancellationToken cancellationToken)
         at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.BeginTransactionAsync(CancellationToken cancellationToken)
         at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(DbContext _, ValueTuple`2 parameters, CancellationToken cancellationToken)
         at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IReadOnlyList`1 entriesToSave, CancellationToken cancellationToken)
         at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
         at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 5: 'database is locked'.
   at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior)
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteNonQuery()
   at Microsoft.Data.Sqlite.SqliteConnectionExtensions.ExecuteNonQuery(SqliteConnection connection, String commandText)
   at Microsoft.Data.Sqlite.SqliteTransaction..ctor(SqliteConnection connection, IsolationLevel isolationLevel)
   at Microsoft.Data.Sqlite.SqliteConnection.BeginTransaction(IsolationLevel isolationLevel)
   at System.Data.Common.DbConnection.BeginTransaction(IsolationLevel isolationLevel)
   at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.BeginTransactionWithNoPreconditions(IsolationLevel isolationLevel)
   at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.BeginTransactionAsync(IsolationLevel isolationLevel, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.BeginTransactionAsync(CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(DbContext _, ValueTuple`2 parameters, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IReadOnlyList`1 entriesToSave, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)

But there are enough ressources. I had 512MB assigned to BaGet. After reading this issue, I increased the memory to 1GB. According to docker top, only about 200MB were used before the crash happens.
Logs from dotnet restore:
Step 6/9 : RUN dotnet restore --configfile nuget.config
 ---> Running in a6af32b399f2

  Failed to download package 'Microsoft.AspNetCore.Razor.Language.2.1.0' from 'https://mybaget.host/v3/package/microsoft.aspnetcore.razor.language/2.1.0/microsoft.aspnetcore.razor.language.2.1.0.nupkg'.
  Response status code does not indicate success: 500 (Internal Server Error).
  Failed to download package 'Microsoft.AspNetCore.Mvc.2.1.0' from 'https://mybaget.host/v3/package/microsoft.aspnetcore.mvc/2.1.0/microsoft.aspnetcore.mvc.2.1.0.nupkg'.
  Response status code does not indicate success: 500 (Internal Server Error).

Adding the --disable-parallel switch to dotnet restore is a workaround. It seems that NuGet makes parallel calls and BaGet writes something to the db (download counts I think), so that SQLite can't handle multiple parallel write operations at the same time.
Is ist possible to use a real db engine like MySQL instead? This should provide a real solution for the problem. Disable parallel downloads is no suiteable solution, it took about 20 second for a few seconds. That's about 2 times slower.

I am having the same issue. I hosted Baget on my Synology 418play with 512MB RAM allocated for the container. This is not a RAM limit issue rather than a concurrency issue when calling SQLite.
Perhaps a db connection is not closed properly?

Is ist possible to use a real db engine like MySQL instead? This should provide a real solution for the problem.

@DMW007 Yes, you can use MySQL, PostgreSQL, SQL Server, or Azure Table Storage as database providers. Please refer to the documentation for more information: https://loic-sharma.github.io/BaGet/configuration/#database-configuration

This is not a RAM limit issue rather than a concurrency issue when calling SQLite.
Perhaps a db connection is not closed properly?

Interesting. It seems that using the --disable-parallel switch on dotnet restore is the proper work around then. I'll do a little more digging since this seems like a real issue.

It seems that enabling Write-Ahead Logging may resolve this issue. See:
https://github.com/aspnet/EntityFrameworkCore/issues/14059
https://stackoverflow.com/questions/48651548/sqlite-terribly-slow-vs-postgres-with-asp-net-core
I'll try to reproduce this issue and I'll see if enabling write-ahead logging helps.

I tried
$fuser databasename.db
this gave me something like
databasename 12345
Now $kill 12345
Worked fine to me

The fix has been released. Please let me know if you run into this issue when using the latest version of BaGet!

@loic-sharma Have run into the issue. Having upgraded to this docker image doesn't seem to resolve issue. I am considering to moving away from SQL Lite and trying another DB.

@queil Please make sure you have write-ahead logging enabled using this guide:

You can check if your SQLite database has write-ahead logging enabled by running the query PRAGMA journal_mode and getting the result wal. If necessary, you can enable write-ahead logging by running PRAGMA journal_mode=WAL;

If you have WAL enabled, please add more info on how you reproduce this issue

@loic-sharma sorry for not having read this thread with more attention. PRAGMA journal_mode=WAL solves the issue. Thanks!

@loic-sharma Just run about 20-30 simultaneous restores and the error reappeared.
My database is using the WAL journaling mode:
sqlite> PRAGMA journal_mode;
wal

An example stack trace:
      Connection id "0HM4F6IL903FQ", Request id "0HM4F6IL903FQ:00000001": An unhandled exception was thrown by the application.
Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 5: 'database is locked'.
   at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
   at Microsoft.Data.Sqlite.SqliteDataReader.NextResult()
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior)
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteNonQuery()
   at Microsoft.Data.Sqlite.SqliteConnectionExtensions.ExecuteNonQuery(SqliteConnection connection, String commandText, SqliteParameter[] parameters)
   at Microsoft.Data.Sqlite.SqliteTransaction..ctor(SqliteConnection connection, IsolationLevel isolationLevel)
   at Microsoft.Data.Sqlite.SqliteConnection.BeginTransaction(IsolationLevel isolationLevel)
   at System.Data.Common.DbConnection.BeginDbTransactionAsync(IsolationLevel isolationLevel, CancellationToken cancellationToken)
--- End of stack trace from previous location where exception was thrown ---
   at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.BeginTransactionAsync(IsolationLevel isolationLevel, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.BeginTransactionAsync(CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList`1 entriesToSave, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(DbContext _, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
   at BaGet.Core.PackageService.TryUpdatePackageAsync(String id, NuGetVersion version, Action`1 action, CancellationToken cancellationToken) in /src/BaGet.Core/PackageService.cs:line 145
   at BaGet.Core.DefaultPackageContentService.GetPackageContentStreamOrNullAsync(String id, NuGetVersion version, CancellationToken cancellationToken) in /src/BaGet.Core/Content/DefaultPackageContentService.cs:line 75
   at BaGet.Hosting.PackageContentController.DownloadPackageAsync(String id, String version, CancellationToken cancellationToken) in /src/BaGet.Hosting/Controllers/PackageContentController.cs:line 49
   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
--- End of stack trace from previous location where exception was thrown ---
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|19_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
   at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
   at BaGet.Hosting.OperationCancelledMiddleware.Invoke(HttpContext context) in /src/BaGet.Hosting/OperationCancelledMiddleware.cs:line 57
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequests[TContext](IHttpApplication`1 application)


Show datePicker when parent overflow is hidden

If we have a parent for example (height: 200px) and (overflow: hidden) there is not enough environment to show the date picker.

Solution is:
When we focus on input element, should get input position (x, y) and set datepicker position as fixed and then set position related to the input place.

@maherAshori  Hi can you put your code here for the hint?

in the parent element with relative position just set overflow: visable.


 For example the query:
kb_project(instance_of(A,dul:'Action')),writeln(A).
will print out
_310
or similar. The rosprolog_commandline tool shows
A: _.
As a result.

I could track the error down to
https://github.com/knowrob/knowrob/blob/04793aa6a8520fceb459a834f142f9ae6ed2d85d/src/lang/terms/triple.pl#L152
Interestingly the all_ground predicate throws a instantiation error if I call
kb_project(triple(A, rdf:type, soma:'Event')).
but no instantiation error if I call
kb_project(triple(A, rdf:type, soma:'Event')).

@sasjonge hmm ok, so there is a predicate to generate a new name. but if the variable is not instantiated project should fail. that's your point, right?
"I could track the error down to" so all_ground succeeds where it shouldn't?

The issue is related to an interface that has not been migrated to the C++ re-implementation of KnowRob. We won't fix remaining issues in the legacy code.


Problema cordova.js?Cache ..

Problem with reference path, not found cordova.js why have cordova.js?Cache.. in name file, more show console.log IonicDeploy init
Solution ? My error ?

@brunoksato You need to remove the cordova.js reference in your index.html. ionic-service-core now bootstraps the cordova.js file for you.

Ok, Thanks !


sudo fails for ldap users

Description
After updating to latest stable v2905.2.0 sudo fails for LDAP users using sssd. The problem seems to have been introduced by https://github.com/kinvolk/baselayout/pull/17
Impact
LDAP users could not elevate privileged with sudo after logging in to ssh with public keys.
Environment and steps to reproduce

configure sssd with ldap
login to ssh via public key
elevate privilege using e.g. sudo -i
sudo fails with correct password

Expected behavior
sudo should succeed when password is correct
Additional information
Moving pam_faillock.so after pam_sss.so fixes the issue and sudo works as expected.
auth		required	pam_env.so
auth		requisite	pam_faillock.so preauth deny=5 unlock_time=60 fail_interval=120
auth		sufficient	pam_unix.so try_first_pass likeauth nullok
auth		sufficient	pam_sss.so use_first_pass
# give pam_sss a chance to authenticate ldap users
auth		[default=die]	pam_faillock.so authfail deny=5 unlock_time=60 fail_interval=120
auth		required	pam_deny.so

account		required	pam_unix.so
# Don't fail if the user is unknown to sssd or if sssd isn't running
account		required	pam_sss.so ignore_unknown_user ignore_authinfo_unavail
account		required	pam_faillock.so
account		optional	pam_permit.so

password	sufficient	pam_unix.so try_first_pass nullok sha512 shadow minlen=8
password	sufficient	pam_sss.so use_authtok
password	required	pam_deny.so

session		required	pam_limits.so
session		required	pam_env.so
session		required	pam_unix.so
session		optional	pam_permit.so
session		optional	pam_sss.so
-session        optional        pam_systemd.so

Hi,
thanks for your detailed report and the fix, I started a PR here: https://github.com/kinvolk/baselayout/pull/18

The fix will be part of all future releases (>  2905.2.1, > 2942.1.0, >  2955.0.0)


Core Dumped Error after inference

Hello, I could compile and run the repo on an amd64 computer. After the inference operation, I got a core dumped error as in the following:
load TRT cache.
<<<<<<<<<<<
load file: ../data/000000.bin
find points num: 20285
find pillar_num: 3384
TIME: generateVoxels: 0.113888 ms.
TIME: generateFeatures: 0.145088 ms.
TIME: doinfer: 989.273 ms.
TIME: doPostprocessCuda: 0.855584 ms.
TIME: pointpillar: 990.544 ms.
Bndbox objs: 8
Saved prediction in: ../eval/kitti/object/pred_velo/000000.txt
>>>>>>>>>>>
<<<<<<<<<<<
load file: ../data/000001.bin
find points num: 18630
find pillar_num: 6815
TIME: generateVoxels: 0.06752 ms.
TIME: generateFeatures: 0.18208 ms.
TIME: doinfer: 6.6993 ms.
TIME: doPostprocessCuda: 1.24224 ms.
TIME: pointpillar: 8.29981 ms.
Bndbox objs: 11
Saved prediction in: ../eval/kitti/object/pred_velo/000001.txt
>>>>>>>>>>>
<<<<<<<<<<<
load file: ../data/000002.bin
find points num: 20210
find pillar_num: 3103
TIME: generateVoxels: 0.06768 ms.
TIME: generateFeatures: 0.125536 ms.
TIME: doinfer: 6.71338 ms.
TIME: doPostprocessCuda: 0.845728 ms.
TIME: pointpillar: 7.85507 ms.
Bndbox objs: 12
Saved prediction in: ../eval/kitti/object/pred_velo/000002.txt
>>>>>>>>>>>
<<<<<<<<<<<
load file: ../data/000003.bin
find points num: 18911
find pillar_num: 3032
TIME: generateVoxels: 0.066528 ms.
TIME: generateFeatures: 0.125248 ms.
TIME: doinfer: 6.69475 ms.
TIME: doPostprocessCuda: 0.681344 ms.
TIME: pointpillar: 7.66832 ms.
Bndbox objs: 4
Saved prediction in: ../eval/kitti/object/pred_velo/000003.txt
>>>>>>>>>>>
<<<<<<<<<<<
load file: ../data/000004.bin
find points num: 19063
find pillar_num: 7515
TIME: generateVoxels: 0.0672 ms.
TIME: generateFeatures: 0.193504 ms.
TIME: doinfer: 6.68547 ms.
TIME: doPostprocessCuda: 1.21693 ms.
TIME: pointpillar: 8.27584 ms.
Bndbox objs: 16
Saved prediction in: ../eval/kitti/object/pred_velo/000004.txt
>>>>>>>>>>>
<<<<<<<<<<<
load file: ../data/000005.bin
find points num: 19962
find pillar_num: 8569
TIME: generateVoxels: 0.072256 ms.
TIME: generateFeatures: 0.215392 ms.
TIME: doinfer: 6.66656 ms.
TIME: doPostprocessCuda: 0.6544 ms.
TIME: pointpillar: 7.7145 ms.
Bndbox objs: 8
Saved prediction in: ../eval/kitti/object/pred_velo/000005.txt
>>>>>>>>>>>
<<<<<<<<<<<
load file: ../data/000006.bin
find points num: 19473
find pillar_num: 5627
TIME: generateVoxels: 0.070752 ms.
TIME: generateFeatures: 0.161312 ms.
TIME: doinfer: 6.67094 ms.
TIME: doPostprocessCuda: 2.75331 ms.
TIME: pointpillar: 9.77827 ms.
Bndbox objs: 17
Saved prediction in: ../eval/kitti/object/pred_velo/000006.txt
>>>>>>>>>>>
<<<<<<<<<<<
load file: ../data/000007.bin
find points num: 19423
find pillar_num: 7935
TIME: generateVoxels: 0.066336 ms.
TIME: generateFeatures: 0.20096 ms.
TIME: doinfer: 6.67046 ms.
TIME: doPostprocessCuda: 1.12442 ms.
TIME: pointpillar: 8.17546 ms.
Bndbox objs: 10
Saved prediction in: ../eval/kitti/object/pred_velo/000007.txt
>>>>>>>>>>>
<<<<<<<<<<<
load file: ../data/000008.bin
find points num: 17238
find pillar_num: 3945
TIME: generateVoxels: 0.06432 ms.
TIME: generateFeatures: 0.128864 ms.
TIME: doinfer: 6.69002 ms.
TIME: doPostprocessCuda: 2.96333 ms.
TIME: pointpillar: 9.95306 ms.
Bndbox objs: 24
Saved prediction in: ../eval/kitti/object/pred_velo/000008.txt
>>>>>>>>>>>
<<<<<<<<<<<
load file: ../data/000009.bin
find points num: 19411
find pillar_num: 7312
TIME: generateVoxels: 0.059232 ms.
TIME: generateFeatures: 0.19088 ms.
TIME: doinfer: 6.67085 ms.
TIME: doPostprocessCuda: 1.55894 ms.
TIME: pointpillar: 8.58445 ms.
Bndbox objs: 13
Saved prediction in: ../eval/kitti/object/pred_velo/000009.txt
>>>>>>>>>>>
malloc_consolidate(): invalid chunk size
Aborted (core dumped)

My cuda and tensorrt versions are:
CUDA: 11.7
cuDNN: 8.4.1
TensorRT: 8.4.1
Thanks in advance.

Hello, I could compile，when run ./demo ,get this error.
Building TRT engine.
../model/pointpillar.onnxtrt_infer: ModelImporter.cpp:773: While parsing node number 6 [PillarScatterPlugin -> "input.3"]:
trt_infer: ModelImporter.cpp:774: --- Begin node ---
demo: malloc.c:2401: sysmalloc: Assertion `(old_top == initial_top (av) && old_size == 0) || ((unsigned long) (old_size) >= MINSIZE && prev_inuse (old_top) && ((unsigned long) old_end & (pagesize - 1)) == 0)' failed.
已放弃 (核心已转储)
My cuda and tensorrt versions are:
CUDA: 11.1
cuDNN: 8.4.1
TensorRT: 8.4.1
Thanks in advance.


conda-forge distribution

It would be nice if there was a conda distribution available from conda-forge.
Pip really is not sufficient for conda users, especially those who might want to publish conda packages that depend on this.

Trying to add a conda-forge recipe in: https://github.com/conda-forge/staged-recipes/pull/21692
@YakDriver would you like to be listed as a maintainer, please?

conda package available: https://anaconda.org/conda-forge/oschmod


Proposal: Optional cause

The current errors.Cause method will gladly return a nil'error if given a nil error (this is expected). However, if the bottom of your error stack is a Causer that also returns nil, Cause returns nil. Example here: https://play.golang.org/p/wQa9urzGX8
The proposed change is simple enough as checking for nil in the errors.Cause loop (If there are additional complexities I haven't considered, please let me know).
func Cause(err error) error {
    type causer interface {
        Cause() error
    }

    for err != nil {
        cause, ok := err.(causer)
        if !ok {
            break
        }

        if err2 := cause.Cause(); err2 != nil {
            err = err2
        } else {
            break
        }
    }
    return err
}

Is the bug that the Cause implmentation on myCodedError returns whatever is in its err field without checking it is nil?
Could this be solved by changing the contract on the causer interface to specific that Cause should not return nil? I can see the argument for allow Cause to return nil, but i'd like to understand what the use case for this is.

Most important point: This is about errors.Cause working without any surprises. errors.Cause() returning nil when the input is non-nil is a surprise. Neither the code nor the documentation cover this.

Is the bug that the Cause implmentation on myCodedError returns whatever is in its err field without checking it is nil?

Yes.

Could this be solved by changing the contract on the causer interface to specific that Cause should not return nil? I can see the argument for allow Cause to return nil, but i'd like to understand what the use case for this is.

Yes it could be solved by changing the contract of causer. It would be a documentation issue then, correct?
The use case for this is interoping with custom error types which implement causer and whether they'll always return non-nil errors. In some cases this could be a programming mistake and other cases it could be purposeful.
Do we mandate non-nil errors via documentation or a panic? Or treat nil errors from causer as 'this causer has no underlying error, so return it'.

I just ran into this, and it was a surprise to me. Here is the code I used: https://play.golang.org/p/RYXqML2VAw
Basically, gorilla's securecookie happens to have the same interface, but with different semantics. I did not realize this, and was very confused why it was returning nil.
I love this errors package, and it's never failed me. I guess my two cents would be that if an error is not nil, but it's Cause() returns nil, then errors.Cause should return the original error, if that makes sense. I understand if this goes against your original intention though.

I think this would be ok;

we tighten the contract for Causer.Cause and say if it is present on a
type it must return an error
or, we change the contract for errors.Cause to

if err, ok := err.(Causer); ok {
e2 := err.Cause()
if e2 == nil {
return err
}
// otherwise recuse
}
I think the second change is better.
On Sun, Jan 15, 2017 at 3:32 PM, Travis<EMAIL_ADDRESS>wrote:

I just ran into this, and it was a surprise to me. Here is the code I
used: https://play.golang.org/p/RYXqML2VAw
Basically, gorilla's securecookie happens to have the same interface, but
with different semantics. I did not realize this, and was very confused why
it was returning nil.
I love this errors package, and it's never failed me. I guess my two cents
would be that if an error is not nil, but it's Cause() returns nil, then
errors.Cause should return the original error, if that makes sense. I
understand if this goes against your original intention though.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/pkg/errors/issues/89#issuecomment-272673114, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAAcA8NgepsJanJNTE_Q3CaefBMWB4kJks5rSaFIgaJpZM4KeLZJ
.

I agree. That second change is almost exactly what I used in my code right now as a work around. I also think the second way matches semantically with what the docs say (with some liberal interpretation):

Cause returns the underlying cause of the error, if possible.

I guess I'm assuming a non-nil error always has a non-nil cause. But I guess in programming, it often seems like things break for no reason :)
Would you like me to submit a PR with this? I think it might also be good to add a quick sentence in the docs right after the other sentences about the causer interface. Something like: "If Cause() returns nil, the original error is returned". Or maybe a warning about how other packages may have the same cause interface with different semantics?

is this ok?
https://github.com/chanxuehong/errors/blob/master/func.go#L90

That looks good to me. If I'm reading it right, a non-nil error always has a non-nil cause, which was my original issue. The only thing I might suggest is adding a sentence to the doc saying this.

Not necessarily; errors.New does not return an error with a Cause.

On 21 Oct 2017, at 01:33, Travis<EMAIL_ADDRESS>wrote:
That looks good to me. If I'm reading it right, a non-nil error always has a non-nil cause, which was my original issue. The only thing I might suggest is adding a sentence to the doc saying this.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

Ok, I just ran into this, but what I expected was to be able to do this:
func (err *sdkError) Cause() error {
	if err.cause != nil {
		return err.cause
	}
	return err
}

Sometimes *sdkError has an underlying cause, sometimes it doesn't -- it's up to the user.
Made a PR (see just above this comment) to handle both use-cases (return nil or self as cause).

I don’t think a Cause() should ever be expected to return nil, however, I do suppose it is a possible return value from an implementation, and as such, it should be handled gracefully.

@davecheney:

I would appreciate it if you can help me understand, on pkg#89, not this
PR, your use case, and why this change is necessary, and could your
requirement be handled without changing the operation of Cause?

I wrote a bit up here (see sdkError example).
We need sdkError because in the SDK, every such error should also have a numeric code for the type of error.  When you create an sdkError, you specify a numeric code and any log information for debugging purposes.  Sometimes you'll want to attach an immediate cause for creating the sdkError, but other times there will be no immediate cause.  So sdkError.Cause() sometimes needs to return nil/itself, and sometimes another error.
https://github.com/cosmos/cosmos-sdk/blob/62f736fbd047194aaee8cb68d2072ca316eec550/errors/errors.go#L155
Of course it would be sufficient to allow errors.Cause() to handle nil return values from causer.Cause(), but it would also be nice to allow the implementor of causer to return itself as the cause, signifying that it is the underlying cause.

It’s probably not specified explicitly but implementing cause then returning nil is not expected.
I don’t know if it will be possible to retrofit this, I’ll have to survey the existing users of this package.
I recommend that you return two different errors, one that implants cause if it has a cause, and another they does not implement cause.
Alternatively, rather that implementing your own error type that implements cause, use one of the With* methods to wrap your original error, the one that does not implement cause.

On 22 Dec 2017, at 13:03, Jae Kwon<EMAIL_ADDRESS>wrote:
@davecheney:
I would appreciate it if you can help me understand, on pkg#89, not this
PR, your use case, and why this change is necessary, and could your
requirement be handled without changing the operation of Cause?
I wrote a bit up here (see sdkError example).
We need sdkError because in the SDK, every such error should also have a numeric code for the type of error. When you create an sdkError, you specify a numeric code and any log information for debugging purposes. Sometimes you'll want to attach an immediate cause for creating the sdkError, but other times there will be no immediate cause. So sdkError.Cause() sometimes needs to return nil/itself, and sometimes another error.
https://github.com/cosmos/cosmos-sdk/blob/62f736fbd047194aaee8cb68d2072ca316eec550/errors/errors.go#L155
Of course it would be sufficient to allow errors.Cause() to handle nil return values from causer.Cause(), but it would also be nice to allow the implementor of causer to return itself as the cause, signifying that it is the underlying cause.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

I can't use With* to wrap the cause because it needs to be wrapped by sdkError, but I can do the former of having two errors, one that embeds the other and also has a cause field.
Thank you, and looking forward to the results of the survey.  LMK if I can help.

Hi Greg,
What would this new RootCause function do?

It just fixed this bug.


Rename lable -> label  in README.md

Coverage remained the same at 99.848% when pulling d6aad51c8f4a9874565f8d4d5bb7627a31359176 on kbadova:patch-1 into 1883a1797408181714ecc5a90810ada120c0c965 on mprzodala:master.

@kbadova Thank you for pull request :)


Parse breakpoints JSON if passed in breakpoints attribute

Provides support for a JSON string to be passed as the breakpoints attribute on the Swiper element:
<swiper-container navigation="true" pagination="true" scrollbar="true" breakpoints='{"600": {"slidesPerView": 3},"900": {
"slidesPerView": 4}}'>

it does not work,
the following error generate:
Cannot use 'in' operator to search for '97' in {"320": {"slidesPerView": 1},"640": {"slidesPerView": 2},"992": {
            "slidesPerView": 3}}

it does not work, the following error generate:
Cannot use 'in' operator to search for '97' in {"320": {"slidesPerView": 1},"640": {"slidesPerView": 2},"992": {
            "slidesPerView": 3}}

@PouryaMontakhab  please confirm you're using the updated getBreakpoint/setBreakpoint files from the PR?

It is now supported in v10


Support for a personal Akismet API key and site

This is in response to issue #83. I tried to make it function exactly like the Mailgun config currently does. Also, seeing as options.origin is a field that already exists for notifications, I figured I could hook that up to the permalink option in the akismet API. Thoughts on this? Thanks for maintaining this project btw, I love using it!

Any updates on merge of this PR?

Would be great if this could get merged and deployed on the hosted service...

I'm totally unfamiliar with the codebase now, so I'm not going to be fixing the merge conflicts unfortunately.


Add __CYCLE_THEN_LATEST__ changelogTemplate variable

This variable can be used in changelogTemplate. It takes the cycle name if latestVersionNumber. ends with .0, else the latest version number.

this doesnt sound a general fix for me , but more like a workaround because this LATEST_SPECIAL thing will be a product based tag and which will make contributors confuse more. so instead of this they may easily add link tag.

__LATEST_SPECIAL__ renamed to __CYCLE_THEN_LATEST__.

and dont forget to remove Qt version fix part in this pr [ otherwise it will remove latest merge which you done ]

when i mention product based tag i mean we couldnt use it for all products (  1 for all like we use LATEST , we still need to be sure that related product have problems with .0 ) [ but looks like there isnt any other possible solutions like runtime checking if the related link 404 or not before applying a custom alternative ,so this is ok]
But still this pr needs a few more points to be added somethng like documentation in related pages such as CONTRIBUTING.md

Closing this PR. This solution is was not accepted in #1774.


Autocluster for latest RabbitMQ

The RabbitMQ site is declares that "autocluster has not yet been built for v3.6.x". Can you please inform when will be ready the autocluster support for the latest 3.6.x RabbitMq version?

@gmr any idea when this would happen or what steps need to be done in oder to get this working? I'm not really familiar with erlang so it's quite hard for me to do a PR myself :(

I'll try and get to the repo changes required as mentioned in #34 this weekend.

Cool :+1:

On Jan 21, 2016, at 9:25 PM, Gavin M. Roy<EMAIL_ADDRESS>wrote:
I'll try and get to the repo changes required as mentioned in #34 https://github.com/aweber/rabbitmq-autocluster/issues/34 this weekend.
—
Reply to this email directly or view it on GitHub https://github.com/aweber/rabbitmq-autocluster/issues/39#issuecomment-173664383.

:+1:

@gmr any update?

Looking forward for this :+1:

I have the build working and have some outstanding bugs to fix from PRs that looked good when I merged them but broke things.

:+1:

@gmr, Great! looking forward see it working!

Also looking forward to this 👍

waiting too

Looking forward to this.

Sorry for the delay, it's coming along.

0.5.0 will be released within the week.

This is released.


2.6.1 build failure use vs2010: 'log2': identifier not found

I'm trying to compile libtcmalloc_minimal 2.6.1 in vs2010, but i get the error:(error C3861: 'log2': identifier not found).even through i modified log2(q) into log(q)/log(2.0) in sample.cc and it works, but i don't know whether this make the performance reduced.I view the history of sample.cc and find that before 2.6rc, it use fastlog2 instead.so i'm confused what's the best in vs2010? log(q)/log(2.0) or revert sample.cc to use fastlog2?

Thanks for report. I am not sure we care much about vs2010 anymore. This code is not performance-sensitive. So your alternative solution will get you somewhere. I will accept the patch if you send it.

As for today we don't support vs2010 (need c++11). Cleaning this up.


Error: sql/schema: unsupported dialect "libsql"

When running the command: atlas migrate apply --env "turso" I get the error Error: sql/schema: unsupported dialect "libsql"
My atlas.hcl:
env "turso" {
  url     = "libsql+ws://<IP_ADDRESS>:8080"
  exclude = ["_litestream*"]
}

Can you provide me the output of atlas version, please?

@masseelch Thank you for taking a look friend! atlas version v0.15.1-143f43e-canary

For versioned migrations, Atlas stores some meta-data about the migration process in a separate table / schema. We use Ent for this, but Ent does not have support for libsql which is the reason it does not work.
cc @haaawk, who added the turso integration.

We fixed the time.Time parsing in libsql client so maybe it will be enough to update it's version it Atlas. I will send a PR

This might help https://github.com/ariga/atlas/pull/2341

Does libsql support still need to be added to ent for this to work?

Does libsql support still need to be added to ent for this to work?

Not sure. It's been a while since I checked ent.

For versioned migrations, Atlas stores some meta-data about the migration process in a separate table / schema. We use Ent for this, but Ent does not have support for libsql which is the reason it does not work. (If I recall correctly, there was some issue with time.Time parsing).
cc @haaawk, who added the turso integration.

I think based on this message Ent is where the error is originating from

@haaawk is it possible to add Ent support to the TODO list? 😄 Thank you friend

@haaawk sorry for the ping again, is there somewhere we can officially request this feature and get it tracked?

I put Ent support on my list but unfortunately there are many other items with higher priority at the moment.
libsql-client-go supports already time.Time so maybe it's enough to update the libsql-client-go version that atlas is using. I encourage you to give it a try :).

This is not an ent issue. I think the Atlas CLI simply doesn't implement the libsql connection yet to apply versioned migrations. I would love to see this feature added!

@PietervdWerk hi friend, how come you said this isn't an Ent issue when the Atlas maintainer above said they use Ent for the versioned migrations? Atlas does work already for declarative migrations


Resolved issue #35 and added new backend stuff

resolves #35
Resolved issue #35
The servlet CourseInfoProvider.java now uses our MongoDB DB in order to retrieve the course info. I had to make very slight changes to js code to accomodate this change cuz the format isn't equivalent.
This PR also includes some new functionality
In the backend:
I've added a new serlvet named FilterCourseCodes, which responds to POST requests at the url path filtercoursecodes (see web.xml).
This new servlet expects a string in the request body named filter. It then searches through our courseData DB and returns the first 25 course codes which contain said string, as a JSON array.
Here is an example of the servlet in operation (request body is in higher box, response is in lower box):

In the frontend:
We had already implemented auto-complete in our search box. I made the necessary changes to make the same autocomplete work with this new backend servlet.
This change was surprisingly easy to do cuz jquery 😍.
You can go ahead and try it out at http://<IP_ADDRESS>/courseplannerd/sequenceBuilder.html
...victory

@PeterGhimself I fixed the commented out code little luluboobmoom please accept this peace offering and approve my changes <3333333


[Refactor] Unified logic for single touch and mouse pointer

What?
This is a small refactor which unifies single touch and mouse interaction logic.
Why?
The main reason I'd like to do this is that it's much easier to write code for both single touch and mouse interactions when these logic paths are combined.
For instance in a subsequent PR I'd like to explore adding a new interaction-policy which would toggle interactions on and off whenever a <model-viewer> is tapped/touched. So basically tap to enable interactions, tap to disable interactions. (think play pause button for video) It would help with this issue mentioned by @elalish.
During user testing that @pushmatrix ran it seemed that this was the best UX to solve this problem.
Things to consider

I changed the type of $lastPointerPosition from Vector2 to a Pointer. I think Vector2 is fantastic but it actually wasn't being used for anything right now.
I haven't implemented $handleSinglePointerUp right now since the logic is the same whether using touch/mouse. Although in a subsequent PR I likely will do this.

@cdata 👌
I'm gonna put up a PR and we can chat about it more there. If it's heading in a bad direction we can just kill it.