Slashdot Log In
Apple Crippled Its DTrace Port
Posted by
kdawson
on Tue Jan 22, 2008 05:26 PM
from the nothing-to-see-here dept.
from the nothing-to-see-here dept.
Linnen writes in to note that one of developers of Sun's open source system tracing tool, DTrace, has discovered that Apple crippled its port of the tool so that software like iTunes could not be traced. From Adam Leventhal's blog: "I let it run for a while, made iTunes do some work, and the result when I stopped the script? Nothing. The expensive DTrace invocation clearly caused iTunes to do a lot more work, but DTrace was giving me no output. Which started me thinking... did they? Surely not. They wouldn't disable DTrace for certain applications. But that's exactly what Apple's done with their DTrace implementation. The notion of true systemic tracing was a bit too egalitarian for their classist sensibilities..."
Related Stories
[+]
Apple Quietly Fixes DTrace 144 comments
In January we discussed a blog entry revealing that Apple had "crippled" its DTrace port. As the author notes in a followup post, to say that DTrace had been "crippled" was at least overstated: "Unfortunately, most reactions seized on a headline paraphrasing a line of the post — albeit with the critical negation omitted." In an updated entry, the poster notes that Apple has made good (so we have too): "One issue was that timer based probes wouldn't fire if certain applications were actively executing (e.g. iTunes). This was evident both by counting periodic probe firings, and by the absence of certain applications when profiling. The good news is that Apple has (quietly) fixed the problem in Mac OS X 10.5.3."
This discussion has been archived.
No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
Full
Abbreviated
Hidden
Loading... please wait.
And as quick as it is reported (Score:5, Informative)
Re:And as quick as it is reported (Score:5, Funny)
Parent
Re:And as quick as it is reported (Score:4, Funny)
Parent
Re:And as quick as it is reported (Score:5, Funny)
Parent
Re:And as quick as it is reported (Score:5, Funny)
. . . . . . . . You
Parent
Re:And as quick as it is reported (Score:5, Funny)
Going by namechecks on Slashdot, three. Ubuntu, Fedora, and Gentoo. But I don't think anyone's ever finished installing Gentoo.
Parent
Thanks Community, now fix Quicktime 7.4 (Score:5, Informative)
http://blogs.adobe.com/keyframes/2008/01/dont_update_to_quicktime_74.html [adobe.com]
Parent
DRM? (Score:4, Interesting)
Re:DRM? (Score:5, Insightful)
Parent
Re:DRM? (Score:5, Insightful)
Even though the labels have largely dropped DRM, they still don't like the idea of users having control over digital music. It's part of their DNA. Their whole business revolved around having control over the production and distribution systems, and they just can't contemplate existence without having control over something. The contracts between Apple and the labels reflect that fear, with Apple having the job of making it look like the horses are still in the barn even though the door is open.
Now technically, that's impossible. But my experience with corporate software development has shown me that you can balance 'customers who don't want to know what's impossible' with judicious use of handwavium. You don't have to build a solution that's bulletproof, you just need something that works most of the time. It doesn't matter if there are workarounds, or even if those workarounds are practically trivial for anyone with a technical background, as long as you can't discuss the workaround without using technical terms.
It's sort of an extension of the Sapir-Whorf hypothesis. It's not that your customers can't think about the problem if you lack the vocabulary, it's more that they won't want to think about the problem if they have to spend effort learning how to discuss it intelligently.
So from a contractual standpoint, providing a 'credible effort' is more about obfuscation than actually trying to do the impossible. Apple probably doesn't care if people can work around this issue, as long as the explanation boils down to 'blah blah blah' to aggressively uninformed label executives.
Parent
Re:Operating System Tying (Score:4, Insightful)
*sigh*
There are plenty of alternative sources for digital music, almost all of which will play on an iPod and be indexed by iTunes. The ones that don't are formats the market isn't beating down Apple's door to support (Ogg), or which require licensing fees (WMA). All the MP3s you've bought from Amazon play on an iPod. All the tracks you import from a CD will play on an iPod. The iTunes store is a convenience for iPod owners, not a necessity.
Besides, the standard operational definition of a monopoly is that a company can raise prices without losing sales, because consumers don't have credible alternatives. So far, Apple's behavior with regard to pricing is to fight against price increases.
There are credible alternatives to the iPod for people who want a digital music player. There are credible alternatives to the iTunes store for people who want to buy digital music. There are credible ways to get music without a digital music player. Apple has the leading products in the digital music player market, and is one of the leading outlets for digital music, but there is a big-ass difference between being a market leader and being a monopolist engaging in anticompetitive behavior, and the DOJ's attitude toward market leaders in competitive markets is "don't bother me, I have real work to do."
Parent
"DTrace is hardly crippled" (Score:5, Insightful)
I call BULLSHIT.
If they're selectively telling this app NOT to log "certain types of traffic", and give no notification of such, or allow the functionality to be restored, then it's CRIPPLED.
I'm so sick of apologists telling me that stuff that's broken is broken for a good reason and that I should be glad someone deigned to allow me to hack it back to some semblance of functionality without getting sued into oblivion!
Parent
Yet another example of how Apple is not our friend (Score:4, Insightful)
OS-X itself (Score:4, Interesting)
You can argue till your blue in the face that they need to do this, doesn't change what they are doing. If it wasn't DRM'd, it'd run fine on any hardware that met its technical requirements.
Parent
Re:OS-X itself (Score:5, Insightful)
Now, it's not too hard to get around this (install Darwin), but there actually is something "technical that prevents it from running on any modern PC".
Parent
Great! (Score:5, Insightful)
This will be a big help for me in my quest for a legion of Mac zombies
Re:Great! (Score:5, Funny)
It might be easier to just attend a Macworld conference.
Parent
Luckily... (Score:5, Interesting)
* If the thread on which this probe has fired belongs to a process marked P_LNOATTACH
* then this enabling is not permitted to observe it. Move along, nothing to see here.
*/
Luckily no malicious programmer will mark their malware's process with this flag!
Evil bit (Score:5, Funny)
Parent
Re:Luckily... (Score:5, Insightful)
Parent
Freedom Crippled when you use Proprietary Software (Score:5, Insightful)
Eagles have nothing to do with this (Score:5, Funny)
Classist Apple? Anti-egaliitarian IBM tolls? (Score:5, Funny)
From the Fine Article (Score:4, Insightful)
"So Apple is explicitly preventing DTrace from examining or recording data for processes which don't permit tracing. This is antithetical to the notion of systemic tracing, antithetical to the goals of DTrace, and antithetical to the spirit of open source."
Diagnostic tool that won't look at all processes is no tool at all.
Slashdot Headline Accuracy? (Score:5, Funny)
Nice...
It's worse, they have broken DTrace (Score:5, Informative)
One question: (Score:4, Interesting)
Re:One question: (Score:5, Informative)
For now, yes... But apple has been in the process of creating cryptographically secure signing and verification of system applications. The next step for them will be to have system tools like this be executed ONLY if they are the unmodified, signed applications that apple originally released.
When that happens, it wouldn't matter if you recompile dtrace - your modified version would just not run.
for info on the current code signing specification from apple (which is pretty much benign for now), see:
--jeffk++
Parent
Re:One question: (Score:5, Insightful)
Parent
The point of the article (Score:5, Insightful)
Sure, it's annoying that DTrace can't "see" iTunes. But that's more of a DRM issue. Whether you agree with DRM and Apple's implementation of it or not, this DTrace feature is merely a logical extension of that issue.
The real problem though is that this feature actually does break iTunes. If DTrace probes while the iTunes application happens to be the application currently running on the CPU, the DTrace probe won't run. (It's technically a thread of iTunes' at that moment.) So not only will DTrace not show iTunes, it won't show ANY information until it happens to fire off when iTunes isn't the app running on the CPU.
It is fair to say that Apple has made a change to DTrace that has introduced a bug that they need to fix. It is possible for them to fix that bug while continuing to block using DTrace on iTunes.
Re:The point of the article (Score:5, Informative)
Parent
So? (Score:5, Insightful)
Thankfully there are options which involve neither company.
One step back (Score:5, Interesting)
Yes, it's annoying - every time we examine the system we are now looking at everything except for iTunes (and possibly Spy-WaR3 ;-). But this issue is about more than just that.
I've introduced DTrace to many companies. While most people love it, some developers of closed source software are concerned about people DTracing their code. DTrace allows customers to gather proof of bugs that are embarrassing, hard to fix, or that the developers have deny existed. I've been asked many times if DTrace can be disabled for an application, usually to avoid negative publicity from the bugs that DTrace will expose. The answer has always been no. It's been great to see developers accept this reality and escelate bug fixing.
This is expected - DTrace visibility should improve overall code quality in IT. Hopefully it will also encourage employers to hire better programmers - since if customers don't use DTrace to point out embarassing bugs, then competitors may. It also erodes reasons to stay closed source - customers can use DTrace to see the code anyway.
Giving developers another option, to disable DTrace visibility, is allowing a backwards step from the future.
What a tragedy (Score:5, Funny)
It will be tricky to make the Windows port twice as horrible though. Maybe I can get it to punch the user in the face every ten minutes?
Wow (Score:4, Informative)
Leopard's DTrace isn't broken. Apple put in an API for a program to request that debugging & dtrace be disabled for it. Clearly it's there to keep FairPlay from being broken (too easily). Something that commercial developers could understandably want for their software, to prevent keygen hacks, etc.
The link I provide shows a simple way to get around it. Hell, debugging iTunes is directly encouraged in an Apple Technote (linked in the article).
As listed in the article I linked to, you can get around it by trapping the API call in gdb and disabling it.
Re:Wow (Score:5, Informative)
Actually, Leopard's DTrace is broken, and that was the point of the blog post. Here's the issue: DTrace programs that would normally work and collect valid data will fail if a process is running with Apple's trace-me-not bit set. Forget tracing iTunes or other applications that don't want to be traced. It's that probes that should fire don't as an unintended side-effect of Apple's hack to obscure certain applications.
A much smarter approach would have been for Apple to deny visibility into such a process, but still allow a user to monitor system-level events (e.g. timers and system calls). This would have allowed for the (questionably motivated, and highly circumventable) protection while not damaging DTrace and correctly phrased queries.
Parent
Re:Wow (Score:5, Insightful)
DTrace works on processes it's supposed to, and doesn't work on those it's not. I'm happy to agree the implementation of the latter is buggy, but I don't think it's the end of the world or a conspiracy theory. Maybe later the providers can be adapted to more intelligently deal with these closed-off processes to give more consistent results.
Apple decided to put in some measures to keep some software locked-down. The correctness of doing so isn't a technical issue, that's a philosophical one.
DTrace is a wonderful tool: one that's saved me *months* off my PhD work, and I love it. And you have my deepest respect for it. But, I don't take dtrace as a philosophy -- I gave up on software religion a long time ago. Everyone's got their own requirements (e.g. locking down iTunes to keep FairPlay from being cracked -- to keep record producers from leaving iTunes) and they've gotta get them done however they can. Call it mercenary ethics if you want, but we don't all work at Sun with CEOs who get it.
Parent
DTRACE (Score:5, Informative)
Old is New Again (Score:5, Informative)
Back in 2000, if you installed MacsBug on a Mac you couldn't play DVDs. When you opened the DVD Player you got an error message telling you a debugger was installed. In these pre-memory protection days, MacsBug was the only debugger low-level enough to catch a whole mess of problems. Unfortunately, MacsBug was loaded when the system booted, so the only way to play a DVD was to remove MacsBug and restart your machine.
Long time Mac developer ally Bare Bones Software (they have a great text editor) created a patch that "fixed" this limitation. AFAIK, Apple never said anything about their patch and just quietly let it exist. http://www.macobserver.com/news/00/april/000418/dvdplayerhelper.shtml [macobserver.com]
This whole message mess came about because Macrovision didn't want people disabling their protection on video-output (there were Macs you could literally plug into VCRs then), and I suspect it was also to guard the CSS "encryption."
When Blu-ray movies finally show up in Macs, this kind of thing is probably going to get a lot worse than patches to D-Trace.
Re:DRM bad, but "classist sensibilities"? (Score:4, Insightful)
Parent
Right. Because that's how the OS community is (Score:5, Insightful)
We never ever criticize our heroes ever. [infoworld.com]
The difference you seem to be missing here is that Steve Jobs only occasionally does a boneheaded thing like this against his fan base. Bill Gates only occasionally doesn't.
Parent
gcc -ideo ramshackle world.cpp (Score:5, Funny)
This is Slashdot where "paper or plastic" is an epic struggle directly and immediately affecting the fates of billions!
BILLIONS, I tell you! BILLIONS!
Parent
Re:DRM bad, but "classist sensibilities"? (Score:5, Insightful)
"Apple's just being a company" = "Class struggle"
The fact that there are two classes of legally recognized entities, with competing rights allocated to each, is sort of the definition of a class struggle.
Parent
it's a slippery slope to genocide, folks (Score:5, Funny)
Then, they came for gettytab, but I did not speak out, because I was happy with Apple's default terminal configuration.
Then, they came for snort, but I was not worried about intrusion detection so I did not speak up.
Next, they came for mkdep, but I did not speak out, because the maid does all my compiling.
Sadly, when it came time for them to use killall, there was nobody left to speak up for me!
Parent
Re:DRM bad, but "classist sensibilities"? (Score:4, Insightful)
The struggle against corporations may be an important part of the defense of humanity, but some would argue that seemingly innocuous things are often just small, innocuous things, and that to go ape shit about them and blow them out of proportion is characteristic of small minds and spirits.
Some would also argue that getting hung up on the small things and seeing battles to be won therein is a good way to ensure that people never take on any large and not so seemingly innocuous issues, that they self indulgently imagine themselves to be revolutionaries fighting the good fight and propagating righteous and enlightened rhetoric.
And even if these people are totally wrong, it still doesn't excuse the ideologically loaded "classist sensibilities" bullshit. But I'm sure the original poser, err poster, feels good about his awesomeness.
Parent
Re:DRM bad, but "classist sensibilities"? (Score:5, Insightful)
What you are saying is that the smaller organization we may voluntarily join (e.g. the corporations that employ us) should be policed by and subject to the larger organizations that we are a member of whether we like it or not (e.g. the country in which we are born).
Yeah, well, not by me. I prefer to choose with whom I associate, and to whom I listen. I most definitely do not like the idea of the largest possible organization of which I'm a member, like it or not, enforcing the ultimate rules of my life. I'm much happier if the rules are defined by a smaller organization that I voluntarily join, and which I can voluntarily leave if I don't like the rules.
In a free society, where the largest powerful organizations are much smaller than the entire country, I can find the corner of it that plays by the rules I like. I have choices. I can be mostly who I want to be. In your "social" society, I have no more choices. I have to be what the majority thinks I should be, act accordingly to their morality and expectations.
No thanks! I know my average fellow man too well to think it would be fun to allow him to dictate the terms of my life.
Parent
Re:DRM bad, but "classist sensibilities"? (Score:5, Insightful)
No, the frickin' **author** of DTrace has found the specific code used by Apple to cripple it.
Parent
Re:C'mon, seriously? (Score:5, Insightful)
The real effects seem to be that while a process which sets this flag has control of the system, any DTrace events that fire off during this time will not be detected, as if they never occurred, regardless of whether what is being traced has anything to do with that process. It seems to break a few important(?) idioms used by DTrace users, so that the results returned are not what they should be.
The furor seems to be that this subtle breakage has gone undocumented; and although only iTunes currently uses it, that does not stop other software (including software that should not be there) from using it. That a DTrace developer discovered this, combined with that this is in all likelihood being done for no reason other than that of DRM, is what makes this notable. If I were working on DTrace, I'd probably be pissed too.
Parent
Re:So what? (Score:4, Informative)
You obviously didn't look very hard. [apple.com]
And software development. Or where did you think the developers of those video editors work and test their code?
No disagreement there, but it doesn't hurt to remind people that OS X is not that. People often leave Linux for OS X, claiming that it's basically an easier-to-use Linux than Linux, you still have all your stuff, etc. And you can always ssh to a Linux server to do real work.
Why is this OK?
Parent
Re:Huh? (Score:4, Insightful)
Apple's record with open source is inconsistent. Sometimes they develop internally and release source (Darwin, Bonjour), sometimes they collaborate with open source projects and share (WebKit with KDE), sometimes they buy out someone's software (Cover Flow), sometimes they steal ideas and never credit original authors (Dashboard).
Apple has its own open source license, the Apple Public Source License, approved by OSI and the FSF. However, they also release under the Apache license as well.
I would say in general, Apple is very open source-friendly, and a lot of open source developers I know have flocked to the Mac. It's just sometimes they have some evil empire corporation actions that make us Apple users shake our heads.
Parent