profile
viewpoint
Markus Junginger greenrobot @objectbox Berlin https://objectbox.io/ CTO and co-founder at objectbox.io, creator of EventBus and greenDAO.

greenrobot/EventBus 23711

Event bus for Android and Java that simplifies communication between Activities, Fragments, Threads, Services, etc. Less code, better quality.

greenrobot/greenDAO 12458

greenDAO is a light & fast ORM solution for Android that maps objects to SQLite databases.

objectbox/objectbox-java 3938

ObjectBox is a superfast lightweight database for objects

greenrobot/essentials 1346

General purpose utilities and hash functions for Android and Java (aka java-common)

objectbox/objectbox-dart 433

The Flutter database for super-fast Dart object persistence

objectbox/objectbox-examples 365

Examples for ObjectBox Android/Java, the super-fast database

greenrobot/android-database-performance 80

Android Database Performance Benchmarks

greenrobot/ObjectBoxRxJava 70

Optional RxJava 2 APIs for ObjectBox

greenrobot/greenInject 54

Injects views, resources, extras, etc. into Android activities and arbitrary Java objects.

greenrobot/sdl-android 35

Fork of libsdl 1.3 (Simple DirectMedia Layer 1.3) with fixes for Android

startedapache/cloudstack

started time in 12 days

issue commentobjectbox/objectbox-java

[ObjectBox] Loading native library failed, please report this to us: vendor=The Android Project,os=linux,os.arch=armv7l,model=null,android=true,linux=true,machine=null

@greenrobot-team Android 21+ offers some nice extra info that could be helpful to devs and us: https://developer.android.com/reference/android/os/Build#SUPPORTED_64_BIT_ABIS - If available, add that to the "please report this to us" string?

shrastiRisor

comment created time in 12 days

issue commentobjectbox/objectbox-java

[ObjectBox] Loading native library failed, please report this to us: vendor=The Android Project,os=linux,os.arch=armv7l,model=null,android=true,linux=true,machine=null

@greenrobot-team Wouldn't Android pick the armv7(a) libs for this CPU?

See also: https://stackoverflow.com/questions/29166619/differences-between-arm-versions-armv7-only/29167402

shrastiRisor

comment created time in 13 days

PullRequestReviewEvent

issue commentobjectbox/objectbox-java

I/Box: Pending Java Exception detected: Could not create entity object

@greenrobot-team Just a side note... Because of "Pending Java Exception detected": can we repro this in our Java tests? Might help us internally to better pin this down in the future.

JitenderSharmaMaxSold

comment created time in 13 days

issue commentobjectbox/objectbox-java

FlatBuffers version conflicts with other library

@tbikash62 Please double check. See https://github.com/objectbox/objectbox-java/blob/main/objectbox-java/src/main/java/io/objectbox/flatbuffers/Constants.java as an example that we changed the package.

nicodubi

comment created time in 14 days

startedboostorg/stacktrace

started time in 15 days

issue commentbombela/backward-cpp

MemorySanitizer: use-of-uninitialized-value in combination with bfd

Tried a couple of things to mack backward work with memory sanitizer, but this is taking too long so I'm giving up.

I archived my changes here; maybe it's useful to someone: backward__futile_attempts_to_fix_msan.patch.txt

I did not dive deep and I wanted to clarify the following two diffed code sections:

-    if (!result.found && fobj->symtab) {
+    if (!result.found && fobj->symtab && *fobj->symtab) {

and

-    if (!result.found && fobj->dynamic_symtab) {
+    if (!result.found && fobj->dynamic_symtab && *fobj->dynamic_symtab) {

I did not see any output changes to the stack trace in both variants, but the variant checking the pointer to pointer additionally seemed less harmful to memory sanitizer. Ofc it depends on when things are initialized (which I did not want investigate further), but wanted still to ask to ensure it's not a bug in the current backward code. Someone more familiar with the code probably can tell right away.

greenrobot

comment created time in 15 days

issue commentbombela/backward-cpp

MemorySanitizer: use-of-uninitialized-value in combination with bfd

After suppressing the two above I get this:

Uninitialized bytes in __interceptor_strlen at offset 0 inside [0x7040000b4ac0, 58)
==421312==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x7fc1f4137b12  (/lib/x86_64-linux-gnu/libbfd-2.34-system.so+0x56b12)
    #1 0x7fc1f413943f in bfd_follow_build_id_debuglink (/lib/x86_64-linux-gnu/libbfd-2.34-system.so+0x5843f)
    #2 0x7fc1f4189082  (/lib/x86_64-linux-gnu/libbfd-2.34-system.so+0xa8082)
    #3 0x7fc1f418979e  (/lib/x86_64-linux-gnu/libbfd-2.34-system.so+0xa879e)
    #4 0x7fc1f41616fd in _bfd_elf_find_nearest_line (/lib/x86_64-linux-gnu/libbfd-2.34-system.so+0x806fd)
    #5 0x7925e0 in backward::TraceResolverLinuxImpl<backward::trace_resolver_tag::libbfd>::find_in_section(unsigned long, unsigned long, backward::TraceResolverLinuxImpl<backward::trace_resolver_tag::libbfd>::bfd_fileobject*, bfd_section*, backward::TraceResolverLinuxImpl<backward::trace_resolver_tag::libbfd>::find_sym_result&) /home/markus/dev/objectbox/cbuild/Release-msan/objectbox/src/main/cpp/../../../../../../objectbox/src/main/cpp/external/backward/backward.hpp:1716:22
    #6 0x7fc1f413aff6 in bfd_map_over_sections (/lib/x86_64-linux-gnu/libbfd-2.34-system.so+0x59ff6)
    #7 0x78b583 in backward::TraceResolverLinuxImpl<backward::trace_resolver_tag::libbfd>::find_symbol_details(backward::TraceResolverLinuxImpl<backward::trace_resolver_tag::libbfd>::bfd_fileobject*, void*, void*) /home/markus/dev/objectbox/cbuild/Release-msan/objectbox/src/main/cpp/../../../../../../objectbox/src/main/cpp/external/backward/backward.hpp:1663:9
    #8 0x786e54 in backward::TraceResolverLinuxImpl<backward::trace_resolver_tag::libbfd>::resolve(backward::ResolvedTrace) /home/markus/dev/objectbox/cbuild/Release-msan/objectbox/src/main/cpp/../../../../../../objectbox/src/main/cpp/external/backward/backward.hpp:1444:9
    #9 0x794186 in void backward::Printer::print_stacktrace<backward::StackTrace const>(backward::StackTrace const&, std::__1::basic_ostream<char, std::__1::char_traits<char> >&, backward::Colorize&) /home/markus/dev/objectbox/cbuild/Release-msan/objectbox/src/main/cpp/../../../../../../objectbox/src/main/cpp/external/backward/backward.hpp:4041:33
    #10 0x78470d in std::__1::basic_ostream<char, std::__1::char_traits<char> >& backward::Printer::print<backward::StackTrace const>(backward::StackTrace const&, std::__1::basic_ostream<char, std::__1::char_traits<char> >&) /home/markus/dev/objectbox/cbuild/Release-msan/objectbox/src/main/cpp/../../../../../../objectbox/src/main/cpp/external/backward/backward.hpp:4007:5
...
  Uninitialized value was created by a heap allocation
    #0 0x51c68d in malloc (/home/markus/dev/objectbox/cbuild/Release-msan/objectbox/src/main/cpp/objectbox-test+0x51c68d)
    #1 0x7fc1f4131f95  (/lib/x86_64-linux-gnu/libbfd-2.34-system.so+0x50f95)

greenrobot

comment created time in 15 days

issue commentbombela/backward-cpp

MemorySanitizer: use-of-uninitialized-value in combination with bfd

Another one (clang 12.0.1, but should not make a difference; got the one above also with 12.0.1).

Note I added some printf etc around lines 1675 - 1686, so line numbers moved back by around 4 after that.

==416891==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x78867c in backward::TraceResolverLinuxImpl<backward::trace_resolver_tag::libbfd>::resolve(backward::ResolvedTrace) /home/markus/dev/objectbox/cbuild/Release-msan/objectbox/src/main/cpp/../../../../../../objectbox/src/main/cpp/external/backward/backward.hpp:1474:11
    #1 0x794bd6 in void backward::Printer::print_stacktrace<backward::StackTrace const>(backward::StackTrace const&, std::__1::basic_ostream<char, std::__1::char_traits<char> >&, backward::Colorize&) /home/markus/dev/objectbox/cbuild/Release-msan/objectbox/src/main/cpp/../../../../../../objectbox/src/main/cpp/external/backward/backward.hpp:4040:33
    #2 0x78420d in std::__1::basic_ostream<char, std::__1::char_traits<char> >& backward::Printer::print<backward::StackTrace const>(backward::StackTrace const&, std::__1::basic_ostream<char, std::__1::char_traits<char> >&) /home/markus/dev/objectbox/cbuild/Release-msan/objectbox/src/main/cpp/../../../../../../objectbox/src/main/cpp/external/backward/backward.hpp:4006:5
...

  Uninitialized value was created by an allocation of 'context.i' in the stack frame of function '_ZN8backward22TraceResolverLinuxImplINS_18trace_resolver_tag6libbfdEE7resolveENS_13ResolvedTraceE'
    #0 0x786610 in backward::TraceResolverLinuxImpl<backward::trace_resolver_tag::libbfd>::resolve(backward::ResolvedTrace) /home/markus/dev/objectbox/cbuild/Release-msan/objectbox/src/main/cpp/../../../../../../objectbox/src/main/cpp/external/backward/backward.hpp:1364
greenrobot

comment created time in 15 days

issue openedbombela/backward-cpp

MemorySanitizer: use-of-uninitialized-value in combination with bfd

Got with with clang 13 and asan:

==47098==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x781634 in backward::TraceResolverLinuxImpl<backward::trace_resolver_tag::libbfd>::find_in_section(unsigned long, unsigned long, backward::TraceResolverLinuxImpl<backward::trace_resolver_tag::libbfd>::bfd_fileobject*, bfd_section*, backward::TraceResolverLinuxImpl<backward::trace_resolver_tag::libbfd>::find_sym_result&) /home/jenkins/agent/workspace/ObjectBox-Sanitizers_cluster/cbuild/Release-msan/objectbox/src/main/cpp/../../../../../../objectbox/src/main/cpp/external/backward/backward.hpp:1679:9
    #1 0x1721cfb in bfd_map_over_sections (/home/jenkins/agent/workspace/ObjectBox-Sanitizers_cluster/cbuild/Release-msan/objectbox/src/main/cpp/objectbox-test+0x1721cfb)
    #2 0x775db7 in backward::TraceResolverLinuxImpl<backward::trace_resolver_tag::libbfd>::find_symbol_details(backward::TraceResolverLinuxImpl<backward::trace_resolver_tag::libbfd>::bfd_fileobject*, void*, void*) /home/jenkins/agent/workspace/ObjectBox-Sanitizers_cluster/cbuild/Release-msan/objectbox/src/main/cpp/../../../../../../objectbox/src/main/cpp/external/backward/backward.hpp:1660:5
    #3 0x775db7 in backward::TraceResolverLinuxImpl<backward::trace_resolver_tag::libbfd>::resolve(backward::ResolvedTrace) /home/jenkins/agent/workspace/ObjectBox-Sanitizers_cluster/cbuild/Release-msan/objectbox/src/main/cpp/../../../../../../objectbox/src/main/cpp/external/backward/backward.hpp:1443:9
    #4 0x78371b in void backward::Printer::print_stacktrace<backward::StackTrace>(backward::StackTrace&, std::__1::basic_ostream<char, std::__1::char_traits<char> >&, backward::Colorize&) /home/jenkins/agent/workspace/ObjectBox-Sanitizers_cluster/cbuild/Release-msan/objectbox/src/main/cpp/../../../../../../objectbox/src/main/cpp/external/backward/backward.hpp:4034:33
    #5 0x772c06 in std::__1::basic_ostream<char, std::__1::char_traits<char> >& backward::Printer::print<backward::StackTrace>(backward::StackTrace&, std::__1::basic_ostream<char, std::__1::char_traits<char> >&) /home/jenkins/agent/workspace/ObjectBox-Sanitizers_cluster/cbuild/Release-msan/objectbox/src/main/cpp/../../../../../../objectbox/src/main/cpp/external/backward/backward.hpp:4000:5

created time in 15 days

startedbombela/backward-cpp

started time in 17 days

issue commentobjectbox/objectbox-java

@Unique: replace on conflict flag

We really should move the remaining option(s) to a new issue to start from a clean slate... Note though that other options are not "sync friendly"...

greenrobot

comment created time in 18 days

MemberEvent
MemberEvent
PullRequestReviewEvent

Pull request review commentobjectbox/objectbox-dart

Transaction: replace removed txn_mark_success

 class Transaction {     checkObxPtr(_cTxn, 'failed to create transaction');   } -  @pragma('vm:prefer-inline')-  void _finish(bool successful) {-    if (mode == TxMode.write) {-      try {-        _mark(successful);-      } finally {-        close();-      }-    } else {-      close();-    }-  }-+  /// Commits a write transaction by marking it successful.+  /// Read transactions are just closed.   @pragma('vm:prefer-inline')   void commitAndClose() => _finish(true);

success() as in C++?

greenrobot-team

comment created time in 20 days

PullRequestReviewEvent

Pull request review commentobjectbox/objectbox-dart

Transaction: replace removed txn_mark_success

 class Transaction {     checkObxPtr(_cTxn, 'failed to create transaction');   } -  @pragma('vm:prefer-inline')-  void _finish(bool successful) {-    if (mode == TxMode.write) {-      try {-        _mark(successful);-      } finally {-        close();-      }-    } else {-      close();-    }-  }-+  /// Commits a write transaction by marking it successful.+  /// Read transactions are just closed.   @pragma('vm:prefer-inline')   void commitAndClose() => _finish(true);

Btw, this is private API, right? Otherwise, "commit" would be misleading and inconsistent to other other languages.

greenrobot-team

comment created time in 20 days

PullRequestReviewEvent
PullRequestReviewEvent

Pull request review commentobjectbox/objectbox-dart

Transaction: replace removed txn_mark_success

 class ToMany<EntityT> extends Object with ListMixin<EntityT> {             throw UnimplementedError();         }       });-      if (ownedTx) tx.markSuccessful();     } finally {-      if (ownedTx) tx.close();+      if (ownedTx) tx.commitAndClose();

Looks like changed semantics to me; before it aborted unless it reached tx.markSuccessful().

greenrobot-team

comment created time in 20 days

issue commentobjectbox/objectbox-dart

Flutter application crashes on iOS 15

@slavamarchenko A little more information would be nice; e.g. to reproduce and ensure it's not a local configuration issue on your side.

FredJul

comment created time in 23 days

issue commentobjectbox/objectbox-dart

box.getAll() throw Failed to lookup symbol 'memcpy': dlsym(RTLD_DEFAULT, memcpy): symbol not found

@Peng-Qian @khasoggi You commented on a closed duplicate. This issue is tracked via #313 and there's a new dev build mentioned here: https://github.com/objectbox/objectbox-dart/issues/313#issuecomment-957896158.

Kseon14

comment created time in 25 days

PullRequestReviewEvent

Pull request review commentobjectbox/objectbox-dart

On iOS use Dart API instead of memcpy

 import 'dart:io'; final _dart_memset memset =     _stdlib.lookupFunction<_c_memset, _dart_memset>('memset'); +/// If the native memcpy function should not be used.+///+/// memcpy is not available to Flutter on iOS 15 simulator,+/// so use Dart API to copy data via asTypedList (which is much slower but works).+///+/// https://github.com/objectbox/objectbox-dart/issues/313+final isMemcpyNotAvailable = Platform.isIOS;

can we instead catch the error of _stdlib.lookupFunction() below? Would have a couple of advantages?

greenrobot-team

comment created time in a month

PullRequestReviewEvent

issue commentobjectbox/objectbox-java

ObjectBox prevents the loading of my other .so libraries

Ah, "armeabi" is a quite old architecture not used in phones for a long time. Thus, for the ARM platform, ObjectBox comes with "armeabi-v7a" (and arm64). Mixing might still work, as both are 32 bit, but it's rather unofficial. Have you tried abiFilters "armeabi" , "armeabi-v7a"?

TechNov

comment created time in a month

issue commentobjectbox/objectbox-java

ObjectBox prevents the loading of my other .so libraries

App still crash cause could'nt load "libDeviceConfig.so"

Could you please post the entire error log?

TechNov

comment created time in a month

startedlibunwind/libunwind

started time in a month

more