这是indexloc提供的服务,不要输入任何密码
Skip to content

Problems with sharing large terminal transcript #1166

@ghost

Description

Problem description
When trying to share a large terminal transcript, application may do nothing or even crash.

It seems like Android puts some limits on data sent with intent. From experiments, it seems that max possible transcript size is around 128 KB.

Steps to reproduce

  1. Open new session.

  2. Fill console with some data. For example:

    dd if=/dev/zero bs=1M count=1 | tr '\0' 'A'
    
  3. From context menu click on button "Share transcript".

Expected behavior

Application should be able to share the transcript regardless of content size.
If it is not possible to send whole transcript, it can be truncated to the reasonable size.

Additional information

Android log:

06-25 00:15:19.048 21822 21822 E JavaBinder: !!! FAILED BINDER TRANSACTION !!!  (parcel size = 2051700)
06-25 00:15:19.053 21822 21822 E AndroidRuntime: FATAL EXCEPTION: main
06-25 00:15:19.053 21822 21822 E AndroidRuntime: Process: com.termux, PID: 21822
06-25 00:15:19.053 21822 21822 E AndroidRuntime: java.lang.RuntimeException: Failure from system
06-25 00:15:19.053 21822 21822 E AndroidRuntime: 	at android.app.Instrumentation.execStartActivity(Instrumentation.java:1624)
06-25 00:15:19.053 21822 21822 E AndroidRuntime: 	at android.app.Activity.startActivityForResult(Activity.java:4564)
06-25 00:15:19.053 21822 21822 E AndroidRuntime: 	at android.app.Activity.startActivityForResult(Activity.java:4522)
06-25 00:15:19.053 21822 21822 E AndroidRuntime: 	at android.app.Activity.startActivity(Activity.java:4883)
06-25 00:15:19.053 21822 21822 E AndroidRuntime: 	at android.app.Activity.startActivity(Activity.java:4851)
06-25 00:15:19.053 21822 21822 E AndroidRuntime: 	at com.termux.app.TermuxActivity.onContextItemSelected(SourceFile:28)
06-25 00:15:19.053 21822 21822 E AndroidRuntime: 	at android.app.Activity.onMenuItemSelected(Activity.java:3547)
06-25 00:15:19.053 21822 21822 E AndroidRuntime: 	at com.android.internal.policy.PhoneWindow$PhoneWindowMenuCallback.onMenuItemSelected(PhoneWindow.java:3996)
06-25 00:15:19.053 21822 21822 E AndroidRuntime: 	at com.android.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:761)
06-25 00:15:19.053 21822 21822 E AndroidRuntime: 	at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:172)
06-25 00:15:19.053 21822 21822 E AndroidRuntime: 	at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:908)
06-25 00:15:19.053 21822 21822 E AndroidRuntime: 	at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:898)
06-25 00:15:19.053 21822 21822 E AndroidRuntime: 	at com.android.internal.view.menu.MenuDialogHelper.onClick(MenuDialogHelper.java:178)
06-25 00:15:19.053 21822 21822 E AndroidRuntime: 	at com.android.internal.app.AlertController$AlertParams$3.onItemClick(AlertController.java:1269)
06-25 00:15:19.053 21822 21822 E AndroidRuntime: 	at android.widget.AdapterView.performItemClick(AdapterView.java:350)
06-25 00:15:19.053 21822 21822 E AndroidRuntime: 	at android.widget.AbsListView.performItemClick(AbsListView.java:1683)
06-25 00:15:19.053 21822 21822 E AndroidRuntime: 	at android.widget.AbsListView$PerformClick.run(AbsListView.java:4094)
06-25 00:15:19.053 21822 21822 E AndroidRuntime: 	at android.widget.AbsListView$10.run(AbsListView.java:6583)
06-25 00:15:19.053 21822 21822 E AndroidRuntime: 	at android.os.Handler.handleCallback(Handler.java:789)
06-25 00:15:19.053 21822 21822 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:98)
06-25 00:15:19.053 21822 21822 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:164)
06-25 00:15:19.053 21822 21822 E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:6944)
06-25 00:15:19.053 21822 21822 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
06-25 00:15:19.053 21822 21822 E AndroidRuntime: 	at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
06-25 00:15:19.053 21822 21822 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
06-25 00:15:19.053 21822 21822 E AndroidRuntime: Caused by: android.os.TransactionTooLargeException: data parcel size 2051700 bytes
06-25 00:15:19.053 21822 21822 E AndroidRuntime: 	at android.os.BinderProxy.transactNative(Native Method)
06-25 00:15:19.053 21822 21822 E AndroidRuntime: 	at android.os.BinderProxy.transact(Binder.java:761)
06-25 00:15:19.053 21822 21822 E AndroidRuntime: 	at android.app.IActivityManager$Stub$Proxy.startActivity(IActivityManager.java:4883)
06-25 00:15:19.053 21822 21822 E AndroidRuntime: 	at android.app.Instrumentation.execStartActivity(Instrumentation.java:1617)
06-25 00:15:19.053 21822 21822 E AndroidRuntime: 	... 24 more

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions