gatttool -b 00:E0:4C:EF:9D:52 --interactive
[00:E0:4C:EF:9D:52][LE]> connect
Attempting to connect to 00:E0:4C:EF:9D:52
Connection successful
[00:E0:4C:EF:9D:52][LE]>
(gatttool:1446): GLib-WARNING **: Invalid file descriptor.
Please see link below for the most detailed explanation of this warning I managed to find so far:
http://www.spinics.net/lists/linux-bluetooth/msg67617.html
In short: it is due to redundant calls to g_io_channel_unref, g_io_channel_shutdown inside gatttool code.
Glib IO socket created inside btio/btio.c:create_io has internal IO channel reference counter, and when it reaches zero object will be disposed automagically. And this is what indeed happening inside chain of calls starting form attrib/interactive.c:disconnect_io. But later there are two calls: g_io_channel_unref, g_io_channel_shutdown that are redundant because socket were already closed before.
This link contains a patch attached by an author that removes last two redundant calls. So you can recompile gatttool yourself and get rid of the warning, but as you can see it is not a critical one and should not cause any major issues.
Related
In node (v10.15.3), I've been profiling with node --prof <script> then summarizing the output with node --prof-process <output>. The resulting summary has a lot of unaccounted for ticks, which might connect to the slew of errors when running that second step, similar to the following:
...
Code move event for unknown code: 0x3663777f8b98
Code move event for unknown code: 0x3663777f9018
Code move event for unknown code: 0x3663777f9790
Code move event for unknown code: 0x36635f5fb5a8
Code move event for unknown code: 0x3663777f9b78
Code move event for unknown code: 0x3663777f9d00
Code move event for unknown code: 0x3663777fa150
Code move event for unknown code: 0x3663777fa7f8
Code move event for unknown code: 0x36635f5fe630
What does this "Code move event for unknown code" error signify? Is there a remedy to this that would give me more details in my profiling investigation?
In short: it means something was weird, and there's (probably) nothing you can do about it :-(
The log file generated with --prof contains, among other things, three related types of entries:
(1) "code object for function F created at address A with size S"
(2) "code object moved from address A1 to address A2"
(3) "execution sample was taken at address E"
The tick processor uses entries of types (1) and (2) to build up a map of code objects corresponding to functions, so when it sees an entry of type (3) it looks for the right function such that A <= E && E <= A+S and then reports that function as having received a profiler tick.
When something about the data is inconsistent, it can happen that the log file contains a move event (entry of type (2)) for a supposed code object at an address A1 that was never mentioned in an entry of type (1) before. In that case, the tick processor doesn't know what to do, so it prints a warning.
Your guess that this is somehow related to seeing many unaccounted ticks is very likely correct.
One workaround you can try (which may or may not help) is to specify --nocompact-code-space along with --prof. That shouldn't be necessary, but then you shouldn't be getting those move events for unknown code either...
Found the root cause. In my case, it was because for MacOS, the symbols are processed through c++filt and nm. The latter was not working properly because:
» nm --version
Agreeing to the Xcode/iOS license requires admin privileges, please run “sudo xcodebuild -license” and then retry this command.
After running this command to accept the license, the symbols resolved correctly.
I have installed condor 8.2.0 on several Win7 (32/64bit) computers according this guide: http://www.slideshare.net/gtelzur/condor8-win-install All the services run on the same machine and therefore I rule out a physical network interrupt.
Whenever a job is created/submitted, it stays in the idle mode. A detailed look a the log files unveil the following issue (ShadowLog):
07/07/14 08:10:47 (1.1) (PID1): **** condor_shadow (condor_SHADOW) pid PID1 EXITING WITH STATUS 107
07/07/14 08:10:47 (1.0) (PID2): condor_read() failed: recv(fd=540) returned -1, errno = 10054 , reading 5 bytes from startd slot1#mycomputer.mydomain.local.
07/07/14 08:10:47 (1.0) (PID2): IO: Failed to read packet header
07/07/14 08:10:47 (1.0) (PID2): Can no longer talk to condor_starter <192.168.25.120:56186>
I couldn't find more details about an IO exception with ID 10054. Beyond that Google does not give me useful hints if I search for "Condor IO: Failed to read packet header".
Do you have a clue what could address the issue?
I had the same issue and it was fixed when I reinstalled Condor in C:\Condor (it was in D:\Condor).
Note that with Condor 8.2.1 I ran into an unrelated problem: I had to edit the condor_config file and remove one $ in the line CONDOR_HOST = $$(FULL_HOSTNAME), as otherwise there was a parsing error.
When you see
condor_read() failed: .... reading 5 bytes from .....
In one of the log files, that usually means that the other side of the connection hung up, so you should look in the log file for the other side of the conversion. In this case, that would be the StarterLog.slot1 on mycomputer.mydomain.local (or possibly just the StarterLog, if the problem happens very early).
Usually when a daemon hangs up, the reason for the hang up is in the log, and very often the problem is that the other side of the conversation isn't authorized. See configuration values that match ALLOW_* to see what is authorized.
I have a wireshark dissector plugin.
I also have a wireshark installed from apt-get.
The wireshark loads fine without the plugin inserted in the right place.
When I include the plugin .so file and try to run wireshark, I get the following error:
$ wireshark
08:23:45 Err register_subtree_array: subtree item type (ett_...) not -1 ! This is a development error: Either the subtree item type has already been assigned or was not initialized to -1.
Trace/breakpoint trap (core dumped)
I tried understanding the problem. It says the subtree was already assigned (I'm assuming assigned an ett value) or was not initialized with -1. there are 3 files in my plugin where the API is called and I checked the values of ett[] being supplied to the API in each of these places. They are all initialized to -1.
Stuck in a roadblock. Any suggestion would be helpful.
Also, I do not understand where wireshark dumps the core. I could not find any core.
Any idea about this?
Generally, if you want to insert a plugin into a program, you have to ensure that the library API that the plugin was compiled against is the same as that provided by the program.
Unless wireshark provides documented versioning in its library API, this means that you have to have the plugin compiled against the same version of wireshark that you intend to use it with. So, if you compile your wireshark or the plugin yourself, you should compile the other as well. If you get your plugin in binary form, you should get your wireshark also from exactly the same place, otherwise you may not know if the two are compatible or not. If you only get a core dump when you insert the plugin, that's a strong indication that the two may not be compatible.
register_subtree_array: subtree item type (ett_...) not -1
...
there are 3 files in my plugin where the API is called and I checked the values of ett[] being supplied to the API in each of these places. They are all initialized to -1.
To which API are you referring? You must not call register_subtree_array() on any particular ett_ array more than once; if you're calling it twice, the first call will cause the ett_ values in the array to be set to values different from -1, so the next call will fail with that error.
I am trying to learn about the encryption of DB at application level using this tutorial. But I am getting an error that says
sqlcipher/sqlite3.c:11033:25: error: openssl/evp.h: No such file or directory
sqlcipher/sqlite3.c:11034:26: error: openssl/rand.h: No such file or directory
sqlite3.c:11035:26: error: openssl/hmac.h: No such file or directory
and due these there are around 93 more errors in the build process. I have strictly followed the tutorial but I am not able to get rid of those errors.
I have added the path of the source code as instructed in the tutorials but still the problem persists. The screenshot could be seen here
I had the same problem, in my case it was caused by a space in my OPENSSL_SRC path. Enclosing the value of OPENSSL_SRC in double-quotes fixed the problem.
The error messages you are seeing indicate that the compiler can't find the OpenSSL headers included in the SQLCipher code. The most likely problem is that you didn't add the OpenSSL headers to your include path when setting up your project. Perhaps you missed this step in the tutorial: "Look for the “Header Search Paths” setting and add references to $(SQLCIPHER_SRC) and $(OPENSSL_SRC). Check “recursive” on both."
As an aside, the information on that MO article is dated. In the future you can refer to this updated tutorial on the SQLCipher website: http://sqlcipher.net/documentation/ios
After long time i'm not sure whether you fixed this issue or not anyway to fix this do as follows:
In OPENSSL_SRC change destination from "/openssl-1.0.0d" to "/openssl-1.0.0d/include".
thatz it..it has to work.
I am trying to get some information about the flow of a large program. KCachegrind used to be great for this in the past. But the latest version (0.6kde) I have on my system (Kubuntu 10.10) won't display the call tree and caller map. It only draws a box with the current function, but no arrows and no callers. Here's the console output:
kcachegrind(27917)/kdecore (services) KMimeTypeFactory::parseMagic: Now parsing "/usr/share/mime/magic"
QInotifyFileSystemWatcherEngine::addPaths: inotify_add_watch failed: No such file or directory
QFileSystemWatcher: failed to add paths: /home/cosmin/.config/ibus/bus
Bus::open: Can not get ibus-daemon's address.
IBusInputContext::createInputContext: no connection to ibus-daemon
CallGraphView::refresh
CallGraphView::refresh: Started process 0x1346f50, 'dot -Tplain'
CallGraphView::readDotOutput: QProcess 0x1346f50
CallGraphView::dotExited: QProcess 0x1346f50
I have dot (graphviz) installed, and the application was compiled with -g -O0.
Do you have any idea where the problem could be?
Oops... I was calling valgrind --tool=cachegrind instead of valgrind --tool=callgrind.