Erlach: image upload request
m-2k opened this issue · comments
I can give any advice
Вообще я делал и тестировал загрузку картинок, она у меня работала. Я просто заливаю картинку и следом отправляю сообщение.
Нужно что-то ещё помимо этого?
У меня так:
Оправка…
=======================================
0% 0/1KB
А затем
Ошибка при отправке сообщения
Прямо сейчас в тред отправил 2 поста с картинкой, вроде всё сработало.
А у тебя в логе сообщений не появляется никаких (тут написано как их получить)?
У меня нет внешней памяти и папки com.mishiranu.dashchan
в /Android/data
Через adb можно как-нибудь?
Внешняя память это та, что /sdcard, /storage/emulated/0, и подобные, где ты файлики остальные хранишь.
Через adb logcat можно лог получить, но отфильтровать его немного сложнее будет. В момент ошибки, скорее всего, длинный стектрейс выплюнет, нужно его скопировать.
У меня нет слота под карту памяти и в AndroidFileTransfer emulated/0
тоже никаких нет.
05-12 23:44:40.065 197 811 D audio_hw_primary: out_set_parameters: enter: usecase(1: low-latency-playback) kvpairs: routing=2
05-12 23:44:40.076 197 811 D audio_hw_primary: select_devices: out_snd_device(2: speaker) in_snd_device(0: none)
05-12 23:44:40.076 197 811 D msm8974_platform: platform_send_audio_calibration: sending audio calibration for snd_device(2) acdb_id(15)
05-12 23:44:40.076 197 811 D audio_hw_primary: enable_snd_device: snd_device(2: speaker)
05-12 23:44:40.079 197 811 D audio_hw_primary: enable_audio_route: apply and update mixer path: low-latency-playback
05-12 23:44:40.120 12954 12954 D Documents: onFinished() [content://com.android.providers.media.documents/document/image%3A293]
05-12 23:44:40.188 775 784 I art : Background partial concurrent mark sweep GC freed 31793(1649KB) AllocSpace objects, 5(96KB) LOS objects, 32% free, 32MB/48MB, paused 1.178ms total 122.263ms
05-12 23:44:40.299 1095 1095 W Binder_4: type=1400 audit(0.0:22179): avc: denied { ioctl } for path="socket:[653193]" dev="sockfs" ino=653193 ioctlcmd=7704 scontext=u:r:system_server:s0 tcontext=u:r:system_server:s0 tclass=unix_stream_socket permissive=0
05-12 23:44:40.299 1095 1095 W Binder_4: type=1400 audit(0.0:22180): avc: denied { ioctl } for path="socket:[653193]" dev="sockfs" ino=653193 ioctlcmd=7704 scontext=u:r:system_server:s0 tcontext=u:r:system_server:s0 tclass=unix_stream_socket permissive=0
05-12 23:44:40.381 12954 12994 D OpenGLRenderer: endAllStagingAnimators on 0xab421000 (GridView) with handle 0xa0b69310
05-12 23:44:40.774 775 881 D ConnectivityService: notifyType CAP_CHANGED for NetworkAgentInfo [WIFI () - 104]
05-12 23:44:43.295 197 811 D audio_hw_primary: disable_audio_route: reset and update mixer path: low-latency-playback
05-12 23:44:43.295 197 811 D audio_hw_primary: disable_snd_device: snd_device(2: speaker)
05-12 23:44:43.801 775 881 D ConnectivityService: notifyType CAP_CHANGED for NetworkAgentInfo [WIFI () - 104]
05-12 23:44:46.601 775 15357 D NetlinkSocketObserver: NeighborEvent{elapsedMs=1145698664, 192.168.1.1, [DC038ED568D1], RTM_NEWNEIGH, NUD_STALE}
05-12 23:44:47.111 197 811 D audio_hw_primary: out_set_parameters: enter: usecase(1: low-latency-playback) kvpairs: routing=2
05-12 23:44:47.121 197 811 D audio_hw_primary: select_devices: out_snd_device(2: speaker) in_snd_device(0: none)
05-12 23:44:47.121 197 811 D msm8974_platform: platform_send_audio_calibration: sending audio calibration for snd_device(2) acdb_id(15)
05-12 23:44:47.122 197 811 D audio_hw_primary: enable_snd_device: snd_device(2: speaker)
05-12 23:44:47.132 197 811 D audio_hw_primary: enable_audio_route: apply and update mixer path: low-latency-playback
05-12 23:44:47.159 1096 1096 W Binder_5: type=1400 audit(0.0:22181): avc: denied { ioctl } for path="socket:[680050]" dev="sockfs" ino=680050 ioctlcmd=7704 scontext=u:r:system_server:s0 tcontext=u:r:system_server:s0 tclass=unix_stream_socket permissive=0
05-12 23:44:47.159 1096 1096 W Binder_5: type=1400 audit(0.0:22182): avc: denied { ioctl } for path="socket:[680050]" dev="sockfs" ino=680050 ioctlcmd=7704 scontext=u:r:system_server:s0 tcontext=u:r:system_server:s0 tclass=unix_stream_socket permissive=0
05-12 23:44:50.302 13468 13504 I PlayCommon: [2728] PlayEventLogger.uploadEventsImpl: Preparing logs for uploading
05-12 23:44:50.303 13468 13504 I PlayCommon: [2728] PlayEventLogger.uploadEventsImpl: No file ready to send
05-12 23:44:50.330 197 811 D audio_hw_primary: disable_audio_route: reset and update mixer path: low-latency-playback
05-12 23:44:50.330 197 811 D audio_hw_primary: disable_snd_device: snd_device(2: speaker)
05-12 23:44:52.131 775 15357 D NetlinkSocketObserver: NeighborEvent{elapsedMs=1145704194, 192.168.1.1, [DC038ED568D1], RTM_NEWNEIGH, NUD_REACHABLE}
05-12 23:45:03.760 775 879 D WifiStateMachine: starting scan for "wifipoint1"WPA_PSK with 2442
05-12 23:45:06.901 775 15357 D NetlinkSocketObserver: NeighborEvent{elapsedMs=1145718964, 192.168.1.1, [DC038ED568D1], RTM_NEWNEIGH, NUD_STALE}
05-12 23:45:14.091 775 881 D ConnectivityService: notifyType CAP_CHANGED for NetworkAgentInfo [WIFI () - 104]
05-12 23:45:17.123 775 881 D ConnectivityService: notifyType CAP_CHANGED for NetworkAgentInfo [WIFI () - 104]
05-12 23:45:23.165 775 881 D ConnectivityService: notifyType CAP_CHANGED for NetworkAgentInfo [WIFI () - 104]
05-12 23:45:26.202 775 881 D ConnectivityService: notifyType CAP_CHANGED for NetworkAgentInfo [WIFI () - 104]
05-12 23:45:29.243 775 881 D ConnectivityService: notifyType CAP_CHANGED for NetworkAgentInfo [WIFI () - 104]
05-12 23:45:29.388 775 794 I UsageStatsService: User[0] Flushing usage stats to disk
05-12 23:45:32.289 775 881 D ConnectivityService: notifyType CAP_CHANGED for NetworkAgentInfo [WIFI () - 104]
05-12 23:45:38.080 775 15357 D NetlinkSocketObserver: NeighborEvent{elapsedMs=1145750144, 192.168.1.1, [DC038ED568D1], RTM_NEWNEIGH, NUD_PROBE}
05-12 23:45:38.344 775 881 D ConnectivityService: notifyType CAP_CHANGED for NetworkAgentInfo [WIFI () - 104]
05-12 23:45:43.762 775 879 D WifiStateMachine: starting scan for "wifipoint1"WPA_PSK with 2442
05-12 23:45:44.385 775 881 D ConnectivityService: notifyType CAP_CHANGED for NetworkAgentInfo [WIFI () - 104]
05-12 23:45:47.418 775 881 D ConnectivityService: notifyType CAP_CHANGED for NetworkAgentInfo [WIFI () - 104]
05-12 23:45:48.169 2460 2460 W Binder_F: type=1400 audit(0.0:22183): avc: denied { ioctl } for path="socket:[680185]" dev="sockfs" ino=680185 ioctlcmd=7704 scontext=u:r:system_server:s0 tcontext=u:r:system_server:s0 tclass=unix_stream_socket permissive=0
05-12 23:45:48.169 2460 2460 W Binder_F: type=1400 audit(0.0:22184): avc: denied { ioctl } for path="socket:[680185]" dev="sockfs" ino=680185 ioctlcmd=7704 scontext=u:r:system_server:s0 tcontext=u:r:system_server:s0 tclass=unix_stream_socket permissive=0
05-12 23:45:48.217 775 1221 W InputMethodManagerService: Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@f5b6a84 attribute=null, token = android.os.BinderProxy@de3bbf4
05-12 23:45:50.473 775 881 D ConnectivityService: notifyType CAP_CHANGED for NetworkAgentInfo [WIFI () - 104]
[PSA] Android Marshmallow 6.0.1 breaks offline sync
https://community.spotify.com/t5/Android/PSA-Android-Marshmallow-6-0-1-breaks-offline-sync/td-p/1411028
Ну, карта памяти это отдельный случай, исторически так сложилось, что /sdcard это сейчас уже не карта памяти, а просто память, доступная пользователю. Ты ведь можешь просматривать картинки? В таком случае у тебя точно должна быть внешняя память, потому что они туда кэшируются, а без памяти картинки даже показываться не будут.
В логе нет ничего полезного, должен быть именно стектрейс, в твоём случае я вижу только системные сообщения. Вполне возможно такое, что ничего и не пишется. Какое всплывающее сообщение точно отображается при попытке отправки?
Я же тебе прислал и ошибку и решение
05-12 23:44:47.159 1096 1096 W Binder_5: type=1400 audit(0.0:22181): avc: denied { ioctl } for path="socket:[680050]" dev="sockfs" ino=680050 ioctlcmd=7704 scontext=u:r:system_server:s0 tcontext=u:r:system_server:s0 tclass=unix_stream_socket permissive=0
Ошибка при загрузке данных, так немного понятнее.
То, что ты подогнал, вряд ли имеет отношение к проблеме, а если и имеет, то вообще не разрешимо на прикладном уровне.
Попробуй так поставь и снова посмотри лог. На этот раз обязательно должно что-то появиться. Только расширение на apk поменяй, гитхаб не даёт в apk загружать сюда.
Впрочем, у меня получилось на эмуляторе это воспроизвести. Буду сам тогда смотреть, так проще намного.
5-13 00:58:26.160 1599 11492 I PlayCommon: [1732] com.google.android.play.a.g.e(202): Preparing logs for uploading
05-13 00:58:26.174 1599 11492 I PlayCommon: [1732] com.google.android.play.a.g.e(206): No file ready to send
05-13 00:58:35.100 18615 18918 W System.err: chan.http.WebSocket$WebSocketException
05-13 00:58:35.100 18615 18918 W System.err: at chan.http.WebSocket.checkReadByte(WebSocket.java:718)
05-13 00:58:35.100 18615 18918 W System.err: at chan.http.WebSocket.access$1000(WebSocket.java:61)
05-13 00:58:35.100 18615 18918 W System.err: at chan.http.WebSocket$Frame.read(WebSocket.java:737)
05-13 00:58:35.100 18615 18918 W System.err: at chan.http.WebSocket.lambda$open$0(WebSocket.java:242)
05-13 00:58:35.100 18615 18918 W System.err: at chan.http.WebSocket$$Lambda$1.run(Unknown Source)
05-13 00:58:35.100 18615 18918 W System.err: at java.lang.Thread.run(Thread.java:818)
05-13 00:58:35.159 1221 1221 W Binder_6: type=1400 audit(0.0:24023): avc: denied { ioctl } for path="socket:[706434]" dev="sockfs" ino=706434 ioctlcmd=7704 scontext=u:r:system_server:s0 tcontext=u:r:system_server:s0 tclass=unix_stream_socket permissive=0
05-13 00:58:35.159 1221 1221 W Binder_6: type=1400 audit(0.0:24024): avc: denied { ioctl } for path="socket:[706434]" dev="sockfs" ino=706434 ioctlcmd=7704 scontext=u:r:system_server:s0 tcontext=u:r:system_server:s0 tclass=unix_stream_socket permissive=0
Примерно понял, что происходит, но не знаю, почему.
Когда я отправляю картинку, я использую что-то вроде запроса "ftp init" и за ним следует "ftp send", сервер мне отвечает похожими сообщениями.
Далее следует 2 варианта событий:
- если всё нормально, то сервер мне отправит ещё парочку сообщений, а затем пришлёт текст вроде "imgLoad('im-1XQZZF','/static/attachments/S2sC/2GHg/0t7Qpr.png');".
- может произойти какая-то проблема и сервер вообще мне больше ничего не присылает после этого
Как раз во втором варианте происходит это длительное ожидание, через минуту соединение просто обрывается.
Что я делаю не так?
У меня закрадывается подозрение, что нельзя разом одну большую картинку слать, а нужно это делать по частям. И каждая часть ограничена 256 килобайтами.
А ты как хотел? При чём размер чанков сервер регулирует сам (но оно захардкожено в 256К, да). Завтра могу проконсультировать. Или сам:
https://github.com/synrc/n2o/blob/4.4/priv/ftp.js#L60
https://github.com/synrc/n2o/blob/4.4/src/protocols/n2o_file.erl#L78
Ну если дело только в этом, то не проблема будет сделать. Только не сегодня уже.
Когда починишь?
Я в итоге решил немного вебсокеты изменить, чтобы можно было нормально отслеживать прогресс отправки файлов, поэтому только после следующего обновления клиента буду исправлять.
Надеюсь ты быстро всё напишешь!
Ну разумеется, у меня по-другому и не бывает!
Пиздобол
Ну вот и всё! А ты беспокоился, что будет долго.
Sounds good!