<feed xmlns='http://www.w3.org/2005/Atom'>
<title>system_core/libappfuse, branch replicant-10</title>
<subtitle>Fork of system/core
</subtitle>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant-next/system_core/'/>
<entry>
<title>Merge "Close /dev/fuse FD before calling onClosed" into qt-dev</title>
<updated>2019-05-31T15:59:39+00:00</updated>
<author>
<name>Anton Hansson</name>
<email>hansson@google.com</email>
</author>
<published>2019-05-31T15:59:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant-next/system_core/commit/?id=b6d9fbddc6d77f57c8630ec372bdb9890679b7be'/>
<id>b6d9fbddc6d77f57c8630ec372bdb9890679b7be</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Close /dev/fuse FD before calling onClosed</title>
<updated>2019-05-31T15:58:45+00:00</updated>
<author>
<name>Anton Hansson</name>
<email>hansson@google.com</email>
</author>
<published>2019-05-31T12:22:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant-next/system_core/commit/?id=c9e873f2747108cc6f010791c86569367d0bef44'/>
<id>c9e873f2747108cc6f010791c86569367d0bef44</id>
<content type='text'>
This works around a deadlock when a bridge that is about to be closed
is reused for a new call to openFile. The call to open() ends up holding
the vold lock, waiting for appfuse to respond. The appfuse event loop
calls onClosed(), which ends up calling vold.unmountAppFuse(), which
cannot get the lock.

Closing this file descriptor causes any current calls to open() on its
mount path to fail with either ECONNABORTED or ENOTCONN, allowing the
event loop to make progress, call onClosed() and unmount the path.

Note that the failed call to open() will result in a retry, which
will create a new appfuse bridge. This is not ideal but not a new
problem -- the common case here is that that each call to
openProxyFileDescriptor creates a new bridge. This should ideally
be improved.

Bug: 132344997
Test: flick through info of photos with location info attached
Exempt-From-Owner-Approval: verbal approval of approach
Change-Id: I878e5cf86f18c5233f8505f52eb9db076bd72d01
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This works around a deadlock when a bridge that is about to be closed
is reused for a new call to openFile. The call to open() ends up holding
the vold lock, waiting for appfuse to respond. The appfuse event loop
calls onClosed(), which ends up calling vold.unmountAppFuse(), which
cannot get the lock.

Closing this file descriptor causes any current calls to open() on its
mount path to fail with either ECONNABORTED or ENOTCONN, allowing the
event loop to make progress, call onClosed() and unmount the path.

Note that the failed call to open() will result in a retry, which
will create a new appfuse bridge. This is not ideal but not a new
problem -- the common case here is that that each call to
openProxyFileDescriptor creates a new bridge. This should ideally
be improved.

Bug: 132344997
Test: flick through info of photos with location info attached
Exempt-From-Owner-Approval: verbal approval of approach
Change-Id: I878e5cf86f18c5233f8505f52eb9db076bd72d01
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix BridgeEpollController to handles EAGAIN correctly</title>
<updated>2019-05-31T03:51:05+00:00</updated>
<author>
<name>Daichi Hirono</name>
<email>hirono@google.com</email>
</author>
<published>2019-05-31T03:51:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant-next/system_core/commit/?id=ca0d4ffbe38a1997d8b1555210a184a5e0d112f4'/>
<id>ca0d4ffbe38a1997d8b1555210a184a5e0d112f4</id>
<content type='text'>
When reading/writing proxy FD, if it returns EAGAIN,
BridgeEpollController updates epoll entries to observe specific FD
events. Before updating epoll entries, BridgeEpollController checks if
it really needs to update by comparing |state_| and |last_state_|.
|last_state_| has not been updated correctly so it resulted in wrong
epoll settings and keeps blocking the event loop.

Bug: 134104939
Test: atest libappfuse_test
Change-Id: I1c4a0164c1c016baf24ecfd523476ced981d3b28
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When reading/writing proxy FD, if it returns EAGAIN,
BridgeEpollController updates epoll entries to observe specific FD
events. Before updating epoll entries, BridgeEpollController checks if
it really needs to update by comparing |state_| and |last_state_|.
|last_state_| has not been updated correctly so it resulted in wrong
epoll settings and keeps blocking the event loop.

Bug: 134104939
Test: atest libappfuse_test
Change-Id: I1c4a0164c1c016baf24ecfd523476ced981d3b28
</pre>
</div>
</content>
</entry>
<entry>
<title>use epoll_create1(EPOLL_CLOEXEC)</title>
<updated>2018-12-17T17:32:23+00:00</updated>
<author>
<name>Nick Kralevich</name>
<email>nnk@google.com</email>
</author>
<published>2018-12-17T17:32:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant-next/system_core/commit/?id=f47c91053ffb0c4477a6dc7271dae0b20b6223c3'/>
<id>f47c91053ffb0c4477a6dc7271dae0b20b6223c3</id>
<content type='text'>
epoll_create(0) leaks file descriptors. Use epoll_create1(EPOLL_CLOEXEC)
instead.

Bug: 120983106
Test: compiles and boots
Change-Id: I2a733d4482d6a74ceb3254e501cdb5f6de0cd5dc
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
epoll_create(0) leaks file descriptors. Use epoll_create1(EPOLL_CLOEXEC)
instead.

Bug: 120983106
Test: compiles and boots
Change-Id: I2a733d4482d6a74ceb3254e501cdb5f6de0cd5dc
</pre>
</div>
</content>
</entry>
<entry>
<title>Stop using SO_SNDBUFFORCE</title>
<updated>2018-03-15T05:22:27+00:00</updated>
<author>
<name>Ryo Hashimoto</name>
<email>hashimoto@google.com</email>
</author>
<published>2018-03-14T10:24:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant-next/system_core/commit/?id=3d95d88b14ce1272202a866296258dcd3a1a85ce'/>
<id>3d95d88b14ce1272202a866296258dcd3a1a85ce</id>
<content type='text'>
Use SO_SNDBUF which doesn't require CAP_NET_ADMIN instead.
Change the value of kFuseMaxWrite to 128KB.

In the kernel code, there is a constant FUSE_MAX_PAGES_PER_REQ which
limits the size of requests to 128KB.

Bug: 74725300
Test: atest android.os.storage.cts.StorageManagerTest

Change-Id: Ic3a8f1a7378d027a6c0ee054cedc2c9f4b7509ad
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Use SO_SNDBUF which doesn't require CAP_NET_ADMIN instead.
Change the value of kFuseMaxWrite to 128KB.

In the kernel code, there is a constant FUSE_MAX_PAGES_PER_REQ which
limits the size of requests to 128KB.

Bug: 74725300
Test: atest android.os.storage.cts.StorageManagerTest

Change-Id: Ic3a8f1a7378d027a6c0ee054cedc2c9f4b7509ad
</pre>
</div>
</content>
</entry>
<entry>
<title>bpfmt.</title>
<updated>2018-02-17T01:58:14+00:00</updated>
<author>
<name>Elliott Hughes</name>
<email>enh@google.com</email>
</author>
<published>2018-02-17T01:58:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant-next/system_core/commit/?id=dc699a269f6a22af6cbba0f6e1359fde103dc4d3'/>
<id>dc699a269f6a22af6cbba0f6e1359fde103dc4d3</id>
<content type='text'>
Bug: N/A
Test: builds
Change-Id: I89ad00e1c4c7e0767bc80a7ac7935a4d55e090ac
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Bug: N/A
Test: builds
Change-Id: I89ad00e1c4c7e0767bc80a7ac7935a4d55e090ac
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge "Add OWNERS."</title>
<updated>2017-12-07T23:21:26+00:00</updated>
<author>
<name>Elliott Hughes</name>
<email>enh@google.com</email>
</author>
<published>2017-12-07T23:21:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant-next/system_core/commit/?id=3289b9c9282dec777363256e27fcc23cd97001c1'/>
<id>3289b9c9282dec777363256e27fcc23cd97001c1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add OWNERS.</title>
<updated>2017-12-07T21:30:03+00:00</updated>
<author>
<name>Elliott Hughes</name>
<email>enh@google.com</email>
</author>
<published>2017-12-07T19:31:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant-next/system_core/commit/?id=693d63f9cfc21e3334c6f8f228d73c4fb60ced8b'/>
<id>693d63f9cfc21e3334c6f8f228d73c4fb60ced8b</id>
<content type='text'>
Bug: N/A
Test: N/A
Change-Id: Ie785058c0f5eb9b4086c98ccba6e63e3ed411b65
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Bug: N/A
Test: N/A
Change-Id: Ie785058c0f5eb9b4086c98ccba6e63e3ed411b65
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge "Remove LOCAL_CLANG and clang: true" am: 80ec81cf4b am: f7b315c985 am: 8a8b97b271</title>
<updated>2017-07-25T22:39:58+00:00</updated>
<author>
<name>Lennart Wieboldt</name>
<email>lennart.1997@gmx.de</email>
</author>
<published>2017-07-25T22:39:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant-next/system_core/commit/?id=6da3de27be0a477a40104f6eaadcf6707c55fd56'/>
<id>6da3de27be0a477a40104f6eaadcf6707c55fd56</id>
<content type='text'>
am: e1332dd01b

Change-Id: I193d86abf96e64b29efc7266f4fa3a26b5d2b3af
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
am: e1332dd01b

Change-Id: I193d86abf96e64b29efc7266f4fa3a26b5d2b3af
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge "Remove LOCAL_CLANG and clang: true" am: 80ec81cf4b am: f7b315c985</title>
<updated>2017-07-25T22:35:56+00:00</updated>
<author>
<name>Lennart Wieboldt</name>
<email>lennart.1997@gmx.de</email>
</author>
<published>2017-07-25T22:35:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant-next/system_core/commit/?id=e1332dd01b48bb4996e2f28f41c349d11280afba'/>
<id>e1332dd01b48bb4996e2f28f41c349d11280afba</id>
<content type='text'>
am: 8a8b97b271

Change-Id: I7e691abe2e2ccec5d9477c528d603c081c0a5661
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
am: 8a8b97b271

Change-Id: I7e691abe2e2ccec5d9477c528d603c081c0a5661
</pre>
</div>
</content>
</entry>
</feed>
