Opened 6 years ago
Closed 6 years ago
#14339 closed bug (not reproducible)
clone_area: KDL to investigate
Reported by: | korli | Owned by: | nobody |
---|---|---|---|
Priority: | normal | Milestone: | Unscheduled |
Component: | - General | Version: | R1/Development |
Keywords: | Cc: | ||
Blocked By: | Blocking: | ||
Platform: | All |
Description
kenmays reported a KDL on hrev52194 gcc2 (and refused to report here), see: https://github.com/haikuports/haikuports/issues/2858#issuecomment-411488064
The clone_area call() is https://github.com/haiku/haiku/blob/master/src/kits/media/Buffer.cpp#L239
I doubt this was already resolved.
Attachments (1)
Change History (10)
by , 6 years ago
Attachment: | 43855215-c70f2f08-9af9-11e8-9acf-a662446e3eb7.jpg added |
---|
comment:1 by , 6 years ago
comment:3 by , 6 years ago
It looks like the intel_extreme GART allocator, which is what allocate_overlay uses to get memory, does not set any protections at all: http://xref.plausible.coop/source/xref/haiku/src/add-ons/kernel/bus_managers/agp_gart/agp_gart.cpp#523
That usually means it gets B_READ_AREA | B_WRITE_AREA
. So I suppose we need to set_area_protection(area_for(...)...)
at the end of that function.
comment:4 by , 6 years ago
Strange, from the screenshot, "Audio Mixer control" would be the audio mixer thread http://xref.plausible.coop/source/xref/haiku/src/add-ons/media/media-add-ons/mixer/AudioMixer.cpp#105
comment:5 by , 6 years ago
I see that, but I don't know what else to say. I tested playing audio in MediaPlayer and video in WebPositive and both worked just fine (on VESA driver, no overlay.)
comment:7 by , 6 years ago
Nope, the HDA driver works just fine here and doesn't trigger any panics. So I'll go try hardware overlays, then.
comment:8 by , 6 years ago
I can't find a way to reproduce this. If anyone else can, a syslog of the system before MediaPlayer was opened would be very helpful.
It seems that buffers only make their way into the BufferManager via SERVER_REGISTER_BUFFER, and this is the only place which uses that command, so something must be adding a kernel buffer to BBuffer.
Since video plays just fine in WebPositive, it must be something MediaPlayer-specific. And indeed, it looks like MediaPlayer registers a buffer based on a BBitmap area: http://xref.plausible.coop/source/xref/haiku/src/apps/mediaplayer/media_node_framework/video/VideoConsumer.cpp#212
So that seems to imply BBitmaps are getting created in kernel space? That seems strange.