Attempted to Rename Transaction to "..." After Transaction Name Was Already Frozen - heroku

I'm getting the following warning on every request:
Attempted to rename transaction to Controller/sessions/new after transaction name was already frozen.
I'm running on Cedar on Heroku with Ruby 2.0.0p195, Rails 4.0.0.rc, Unicorn 4.6.2 and RPM 3.6.2.96. I've traced the exception to the following file (line 108) but I'm unsure of what to do to fix:
https://github.com/newrelic/rpm/blob/master/lib/new_relic/agent/transaction.rb

I work at New Relic.
When you get a message like this, it's due to the component of our app known as Real User Monitoring (RUM), which attempts to monitor page load time in the customer's browser. Why should this affect your ability to rename transactions? We base the timing capture in the user's browser on the transaction ID--which is tied to transaction name on your server--and this information goes into the footer we've created for your web page. By the time we create that footer, whatever the transaction name is will continue to be the case through the end of the transaction. In the case that you have a slow page load that corresponds to a slow app server transaction and we captured both traces, then in our UI you'll be able to click between the two (This slow page load came from that specific slow transaction).
Rails 4 makes this rather harder if you're using the turbolink feature. We're working on explicit support for that very soon, but as it stands, turbolinks basically preclude RUM from working after the first page load (if your app has links to itself in it, anyway).
So, your options for fixing it are:
rename your transaction earlier in the code sequence--preferably rather far before the end of the content generation (necessarily before gets output, but in some cases rather sooner)
turn off browser monitoring for this app, as you can then rename transactions at any point in the execution
Note that suggestion 1 might not work considering the state of our turbolinks support. We'll have support for that as soon as we can--certainly sometime this year. Unfortunately we don't promise timelines, we just deliver features, so I can't be more specific on timing.

Related

Metaplex storefront on vercel perpetual loading problem

I am having problem loading metaplex store. I did a direct fork from the main metaplex-foundation github master and deployed it on Vercel via their instructions here: https://github.com/metaplex-foundation/metaplex/blob/master/docs/deploy.md
It builds without errors, but when I load the site, it just keeps loading forever and wallet cannot be accessed or connected nor the site be accessible.
I followed all instructions from their link above and ensured I have the address in the.env.
I even added a URL in a new CNAME file I added in packages/web folder, from previous experience.
How can I resolve this?
For starters, metaplex acknowledges that the current storefront (v1) has quite a few issues that are impacting users. No further fixes will be forthcoming given that the storefront has been officially deprecated as of May 2022. With that out of the way, a high level overview of the issue you are describing is as follows:
when you start a storefront (SF) that has no auctions, it needs to scan quite a bit of data to figure out what it needs to display. This scan includes a few chunky calls to the RPC that may or may not work depending on the state of the network. This step is also a bit buggy and can end up in an infinite loading loop.
when you fire up the first auction, SF creates a storeindexer object on the chain. This object is used to index the first auction and all the subsequent auctions.
if SF finds a storeindexer object on startup, it bypasses all the madness in step (1) and instead uses the storeindexer to figure out what data is needed. That doesn’t require any gPA (getProgramAccount) calls either which is nice.
it’s a bit of a catch-22 because in order to start the first auction you need the storefront, but you also need an auction to avoid the loading problem in step (1).
After the first auction is up you should be able to resume using your SF as normal.
You may try this version of the storefront to get around the infinite loading problem. It's quite barebones in terms of functionality and there is an issue with SPL tokens that have decimals other than 9. However it does get around the infinite loading problem and you should be able to list your first auction with it.
https://github.com/neftworld/metaplex-storefront-v1
However, STOREFRONT IS DEPRECATED SO CAVEAT EMPTOR

How to create a Checkpoint in UFT

Strange enough that I have to ask such a simple question.
I started automating with UFT and I suppose the correct way to check if for instance my login has worked is to add a checkpoint on the next page.
But how do I do that?
All info I get from google is on how to add an already existing checkpoint to may page. But I don't have any.
Here is how I go about automating:
I add manually the relevant objects to the object repository
I create parameters for my action
I create the code that does the steps on the page
one action per page seems to be fine for me
But in the Object Repository of UFT 14.53, there is no button to add a Checkpoint.
A workaround for me would be to just add another Object and check it's existence and forget about checkpoints. Until I hopefully get an answer here, I will try to do just that.
In UFT there are typically two ways to verify that things are working as expected.
Flow (implicit) - In order to verify that progress in the application is successful (e.g. login) one usually just keeps working with the app, assuming that if the previous step failed, the objects needed for the next steps won't exist and the test will fail due to ObjectNotFound errors
State (explicit) - In order to see that objects have a specific state, checkpoints are usually used. Checkpoints are typically added during a record session, I'm not sure if there's a way to add them directly to the repository. An alternative to checkpoints, which works better with keyword driven testing (no recording), is to use the built in CheckProperty method.

Issues with Swashbuckle

I have a WebAPI service, written in ASP.NET (not Core), for which I am trying to generate documentation, in order to allow other devs to use it. I found Swashbuckle, and installed it. Then, since I also use OData for some of my services, I added Swashbuckle.OData. Then, I modified the CustomProvider setting in SwaggerConfig to use the ODataSwaggerProvider. I also set ResolveConflictingActions(apiDescriptions => apiDescriptions.First()) because I had a few Actions with the same URL path, differing only by query string (I'll need to address that later). So far so good.
Then, I tested it. I started my web app, then added "/swagger/" to then end. I got a message stating that it was loading the resource info. However, after several minutes, I got a browser error debug popup, stating "Error: Not enough storage is available to complete this operation." It asks if I want to debug, and if I do, it takes me to the debugger in IE (the browser I'm using). The only code in the stack is either from jquery-1-8-0-min-js or swagger-ui-min-js (this part confuses me, as there is no "swagger-ui-min-js" file in my project; I'm assuming it's embedded in the dll). There is no part of the stack trace that floats back up to my code, and all the code there is minified, so it's very difficult to debug.
However, I do know that it is at least partially working, as three of the controllers do show up in the resulting page after you close the error popup. You can navigate through them, and all the GETs, POSTs, PUTs, and DELETEs seem to be there, and you can test them.
Is it the case that whenever you navigate to the "/swagger/" url, Swagger hits all the URLs in the service, in order to generate the documentation? I'm wondering if maybe it is hitting an action that is taking a particularly long time to run, or possibly its generated documentation is taking too much disk space (I have plenty of space on my disk, but maybe it is referring to RAM?).
Anyway, even if that were not an issue, how can I get it to generate something, some kind of document file, that I can send off to someone? I see no new files added to my folders, so it would seem that it re-does the whole process every time you navigate to the swagger URL.
When I tried the Chrome browser, I no longer had the issue (I was using IE11 before). Not sure what the problem was, but this was the workaround.

is there are way to ignore page load when running seleniume cucumber

Hi is there any way to ignore the page load when running selenium cucumber, because it always fail my test and i just want to check if that content is present or not.
please don't say add sleep.
the issue im having is that the content is present but its always waiting the page to be fully loaded and sometimes it got stock trying to get some api call to a 3rd party company.
Here are some approaches you could try
Change your driver and us webkit. Setup webkit to not load external links. See http://robots.thoughtbot.com/speed-up-javascript-capybara-specs-by-blacklisting-urls
Ensure you understand and us the has_no methods if you are testing that something is not present e.g. use
expect(page).to have_no_css '.test' # fast
rather than
expect(page).to !have_css('.test') # slow will always wait until timeout
Change the default timeout to something shorter (perhaps only for this scenario, using a tag)

BackgroundTransferService: what are some of the details of its operation?

I kick off 5 uploads (of varying size) via the BackgroundTransferService. I have the following questions about the way it works:
It seems that on the emulator it does 2 uploads at a time. Is this how it works on the actual device? Can I programmatically change this behavior?
Can I count on the uploads going out in the order that I submitted them? I seem to be getting conflicting results in my testing.
When I inspect the BackgroundTransferService in my application, does it contain requests from other apps as well or just mine?
Do I need to reconnect events for all the BackgroundTransferRequest objects when coming back from being tombstoned? What about coming back from being reactivated?
Do I need to disconnect events from the BackgroundTransferRequest when I remove it from the BackgroundTransferService.Requests collection?
When I try to upload a non-existing URL:Port (on the localhost), the TransferStatus is reported as WaitingForNonVoiceBlockingNetwork. The upload never actually completes/fails. Is this how it is on the device? Should I remove the request when it encounters this TransferStatus?
You cannot influence the behaviour of the BTS. If you don't like the way it works you can write the transfer functionality as part of your own application but then you have to handle running in the background yourself.
There is no guarantee on sequence.
The BTS may be handling requests from other apps but you won't be able to see the details. Requests() will only return details for your app.
Surely a quick test will tell you this.
It's good practice to.
Have you checked the TransferError property whe you reach this situation? This is a perfectly valild status in other situations and so you shouldn't treat this as a automatic fail.

Resources