We have a react implementation for adobe analytics, the network calls are exactly the same from non react vs react. The same variables with the same values are being sent to both, but it seems like the react side doesn't show up correctly in Adobe Reporting, even though people are confirm the configuration is the same for all environments.
Did anybody run into any issues, and any possible solutions they took to get it to work properly. Thanks
This is a sample call removed some of the URLS where XXX is, the call returns an OK 200
. AQB:1
. ndh:1
. pf:1
. t:13/1/2018 19:41:45 2 300
. ts:1518568905165
. fid:222B73C92E72E4AF-1050B1DB767A269E
. ce:ISO-8859-1
. ns:XXX
. pageName:motorsport
. g:XXX
. r:XXX
. cc:USD
. ch:motorsport
. server:XXX
. state:New Jersey
. zip:07024
. events:prodView,event39
. products:Modules;Mod053;;;event39=1,Modules;Mod050;;;event39=1,Modules;Mod054;;;event39=1,Modules;Mod047;;;event39=1,Modules;Mod053;;;event39=1,Modules;Mod050;;;event39=1,Modules;Mod054;;;event39=1,Modules;Mod047;;;event39=1,Modules;Mod053;;;event39=1,Modules;Mod050;;;event39=1,Modules;Mod054;;;event39=1,Modules;Mod047;;;event39=1
. c1:D=g
. v1:D=pageName
. v2:product research: videos
. v3:Organic
. c9:motorsport: touring cars: index
. c10:motorsport
. v23:homepage: join
. v24:73b3d36a-2f59-41c7-aae6-73d13c08d9b8
. v28:Mod: Navigation: MOTORSPORT: GT
. v30:33c03cef-942b-47a9-a95a-c33bac0c21d0
. v31:Logged
. c32:D=v28
. c35:D=v30
. v35:Less than 1 day
. v36:7:30PM
. c37:D=v31
. v37:Tuesday
. v38:Weekday
. c39:28
. c40:D=v36
. c41:D=v37
. c42:D=v38
. v42:D=ch
. v43:D=g
. v44:D=s_vi
. v45:c30e9d2d-d35a-4297-8892-efcae2d76dcc
. c46:D=v35
. c49:0f124b6a-a68a-49fd-95ec-047f440be29f
. c50:2.0.0 | 11.27.2017
. c52:D=v24
. c60:D=v60
. v60:XXX
. v61:Active
. c68:D=v68
. v68:MTOD: 2c92c0f952f30dd50152f64979211f69
. c74:D=v74
. v74:2c92c0f860017d940160043310752610
. s:1440x900
. c:24
. j:1.6
. v:N
. k:Y
. bw:1314
. bh:761
. AQE:1
The behavior shows up in the adobe debugger and network calls fine, just never populates in the reports, or if it does there are a lot of unspecified instead of actual values, majority of the times it's doesn't show up at all.
The main question is if the network calls are the same is this a code issue or config issue? Thanks
Related
The problem is simple:
When I run for example:
print(Process.runSync('ipconfig', []).stdout)
I get the expected output:
Windows IP Configuration
Unknown adapter Helyi kapcsolat:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
......
But when I try to run ffmpeg, I get no output:
print(Process.runSync('ffmpeg', []).stdout)
What I'd expect in this case is to get the help output from ffmpeg.
My guess is, ffmpeg has some kind of "different" way of interacting with stdout than most executables. What could be the problem? I'm totally lost here.
I need to read the stdout eventually to get the output of ffmpeg -list_devices true -f dshow -i dummy, which would list the available DirectShow devices.
FFmpeg outputs useful data to stderr, including the help output and the device list of my original command, ffmpeg -list_devices true -f dshow -i dummy.
Simply use stderr (as well as stdout) to get the output:
print(Process.runSync('ffmpeg', []).stderr)
Tested in python 3.7 <=
import subprocess
s_out = subprocess.run(['ffmpeg', 'command_here'], check=True, capture_output=True).stderr
print(s_out)
"subprocess.CalledProcessError" must be returned if command is invalid.
I'm trying to develop a test tool with Frida. Recently I try the code snippet from the doc to log a backtrace:
Interceptor.attach(Module.findExportByName(null, 'open'), {
onEnter: function (args) {
var path = Memory.readUtf8String(args[0]);
console.log("open" + path + ")\n\t" + Thread.backtrace(this.context, Backtracer.ACCURATE).map(DebugSymbol.fromAddress).join("\n") + "\n");
}
});
but we I try to run the script with my app(MyApp), I got these:
open/var/mobile/Containers/Data/Application/E459A8E1-12D5-4E20-8F99-40CA90967C0B/Library/Caches/XXXX/XXXX.plist)
0x1ce3140f Foundation!_NSReadBytesFromFileWithExtendedAttributes
0x1ce356c7 Foundation!-[NSData(NSData) initWithContentsOfFile:options:error:]
0x1cecf0c1 Foundation!+[NSKeyedUnarchiver unarchiveObjectWithFile:]
0x534293 MyApp!0x4f0293
0x5341f5 MyApp!0x4f01f5
0x53450d MyApp!0x4f050d
0x53360f MyApp!0x4ef60f
0x5346b9 MyApp!0x4f06b9
0x8b4473 MyApp!0x870473
0xb81ecb MyApp!0xb3decb
0xb82225 MyApp!0xb3e225
0xb823bf MyApp!0xb3e3bf
0xb3974d MyApp!0xaf574d
0xb00533 MyApp!0xabc533
0x48039 MyApp!0x4039
0x218595c5 UIKit!-[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:]
you can see that the
DebugSymbol.fromAddress
can symbolicate the address for Foundation, but for MyApp it failed.
from the video 19:33, we can see that the DebugSymbol.fromAddress can symbolicate the address of the target app.
I'm using Frida 11.0.12 and the device is iPhone 5 with iOS10.3.3 cracked with h3lix-RC5.
do anyone also meet this problem?
To reproduce your issue I will need the IPA, or at least nm -DC output on MyApp mach0 file.
Also, there is an issue with the script you pasted, path is the first element in args, it's an address which is a reference to a string, args is an array that contains (not finite) arguments.
$ frida -U Telegram
____
/ _ | Frida 11.0.11 - A world-class dynamic instrumentation toolkit
| (_| |
> _ | Commands:
/_/ |_| help -> Displays the help system
. . . . object? -> Display information about 'object'
. . . . exit/quit -> Exit
. . . .
. . . . More info at http://www.frida.re/docs/home/
[iOS Device::Telegram]-> Interceptor.attach(Module.findExportByName(null, "open"), {
onEnter: function (args) {
console.log("open " + Memory.readUtf8String(args[0]));
console.log(Thread.backtrace(this.context, Backtracer.ACCURATE).map(DebugSymbol.fromAddress).join
("\n"));
}
});
{}
[iOS Device::Telegram]-> open /private/var/mobile/Containers/Shared/AppGroup/1E33CAF6-1422-.../Documents/network-usage
0x10109a8ec Telegram!0x102a8ec
0x1822bd4bc libdispatch.dylib!_dispatch_call_block_and_release
0x1822bd47c libdispatch.dylib!_dispatch_client_callout
0x1822c94c0 libdispatch.dylib!_dispatch_queue_drain
0x1822c0f80 libdispatch.dylib!_dispatch_queue_invoke
0x1822cb390 libdispatch.dylib!_dispatch_root_queue_drain
0x1822cb0b0 libdispatch.dylib!_dispatch_worker_thread3
0x1824d5470 libsystem_pthread.dylib!_pthread_wqthread
open /private/var/mobile/Containers/Data/Application/3ED4C762-597B-.../Library/Cookies/Cookies.binarycookies
0x182777dec CoreFoundation!fileOpen
0x182767eb8 CoreFoundation!_CFStreamOpen
0x182777d14 CoreFoundation!CFReadStreamOpen
0x182e578d0 CFNetwork!DiskCookieStorage::readFileToCookies(MemoryCookies*)
I have an app and a plugin built with Grails 2.1.1 that i upgraded to 2.2.1 and I am running into a weird issue. My application started blowing up all over because configuration values defined in my app Config.groovy all of a sudden resolve to groovy.Util.ConfigObject instead of their actual values. This is part 1 of the problem, part 2 is that in my app, I define in my app's Config.groovy
grails.config.defaults.locations = [
"classpath:DemoPluginConfig.groovy",
]
DemoPluginConfig.groovy contains this property
oo.memcached.timeout=400000
and the DemoPluginConfig.groovy file is in the src/java folder of my Demo plugin.
I have a memcache service where i am trying to set that timeout property once the service is ready:
def void afterPropertiesSet() {
ConnectionFactoryBuilder cfb = new ConnectionFactoryBuilder()
def config = grailsApplication.config;
def operationTimeOut = config.oo.memcached.timeout
cfb.setOpTimeout(timeOut)
}
grails run-app blows up at this point with error:
Caused by MissingMethodException: No signature of method: net.spy.memcached.ConnectionFactoryBuilder.setOpTimeout() is applicable for argument types: (groovy.util.ConfigObject) values: [[:]]
Possible solutions: setOpTimeout(long)
->> 55 | unwrap in org.codehaus.groovy.runtime.ScriptBytecodeAdapter
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 46 | call in org.codehaus.groovy.runtime.callsite.PojoMetaClassSite
| 45 | defaultCall . . . . . . . . . . in org.codehaus.groovy.runtime.callsite.CallSiteArray
| 108 | call in org.codehaus.groovy.runtime.callsite.AbstractCallSite
| 116 | call . . . . . . . . . . . . . in ''
| 20 | afterPropertiesSet in com.millennialmedia.ui.core.MemcachedService
| 1514 | invokeInitMethods . . . . . . . in org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory
| 1452 | initializeBean in ''
| 519 | doCreateBean . . . . . . . . . in ''
| 122 | doCreateBean in org.codehaus.groovy.grails.commons.spring.ReloadAwareAutowireCapableBeanFactory
| 456 | createBean . . . . . . . . . . in org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory
| 271 | resolveInnerBean in org.springframework.beans.factory.support.BeanDefinitionValueResolver
| 126 | resolveValueIfNecessary . . . . in ''
| 1360 | applyPropertyValues in org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory
| 1118 | populateBean . . . . . . . . . in ''
If i try to run grails run-app a couple more time it starts up successfully but the app blows up on loading a page with another groovy.Util.ConfigObject is not serializable error. Step by step debugging before the app blows up shows that by the time we get to the setOptTimeOut line, grailsApplication.config only contains config options from my app's Config.groovy, as if the values from the plugin DemoPLuginConfig.groovy were just ignored.
Reverting back to 2.1.1 brings everything back to normal. At this point I have no idea where to look.
Shouldn't you be using operationTimeOut instead of timeOut below
cfb.setOpTimeout(timeOut)
Try to put your Groovy configuration in grails-app/conf instead of src/java. Then, see if you can reproduce your error on a consistent basis.
If all fails, grails clean may prevail.
Hope it helps
I'm new to Grails and working on my little project. What I have problem with is my XML reading Service - ReadService - has a function read() that returns XmlSlurper(). Function reads the xml file, as it's write it in console with println. But when I try to print the result XmlSlurper in Bootstrap, I don't get anything.
class BootStrap {
def ReadService
def init = {
servletContext ->
def xml = ReadService.read()
println xml
}
}
Can someone tell me what I am doing wrong?
It looks like you just have misspelled your service.
Your ReadService must be saved in grails-app/services.
To use the service you have to declare them like this
def readService
and within init you could use them as follows:
def xml = readService.read()
As you can see, the first letter must be lowercase.
Okay, I see now the problem isn't with reading the xml itself, rather with bootstraping with it, as changing Service name to lovercase helped. I use ReaderService to read xml file with addresses and build address objects. Here is mine Bootstrap code:
`
class BootStrap {
def readService
def init = {
servletContext ->
def xml = readService.read()
println xml
def adress = new mobilmed.Adres(ulica:xml.adress.street, dom:xml.adress.house, miejscowość:xml.adress.residance, kodPocztowy:xml.adress.postCode, poczta:xml.adress.post).save()
if(adres.hasErrors()){
println adres.errors}
}
}
When I run it, I got classical "no such property" error.
| Error 2012-08-28 06:42:36,784 [pool-7-thread-1] ERROR context.GrailsContextLoader - Error executing bootstraps: No such property: adres for class: BootStrap
Message: No such property: adres for class: BootStrap
Line | Method
->> 10 | doCall in BootStrap$_closure1
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 301 | evaluateEnvironmentSpecificBlock in grails.util.Environment
| 294 | executeForEnvironment . . . . . in ''
| 270 | executeForCurrentEnvironment in ''
| 303 | innerRun . . . . . . . . . . . . in java.util.concurrent.FutureTask$Sync
| 138 | run in java.util.concurrent.FutureTask
| 886 | runTask . . . . . . . . . . . . in java.util.concurrent.ThreadPoolExecutor$Worker
| 908 | run in ''
^ 662 | run . . . . . . . . . . . . . . in java.lang.Thread
Of course, i checked, and Boostraping for defined variables works just fine, like this:
def karolzam = new mobilmed.Adres(ulica:"Turkusowa", dom:"8/22", miejscowość:"Lublin", kodPocztowy:"20-572", poczta:"Lublin").save()
if(karolzam.hasErrors()){
println karolzam.errors}
Looks like the Bootstrap don't "seeing" variables that can print on console. :/
I want to grep out a batch of consecutive lines, that starts at a specific pattern and ends at specific pattern.
E.g. the content of file looks like this :
line 1
line 2
.
.
.
my_start_pattern
.
.
.
my_end_pattern
.
.
.
line n
The output of grep should look like following :
my_start_pattern
.
.
.
my_end_pattern
Thanks.
Don't know if grep can do this, but awk can.
awk '/start pattern/,/end pattern/' data_file_name
(leave off the file name if you want to filter from stdin)