Page 1 of 1

[trunk] Check failed: base::i18n::InitializeICU()

PostPosted: Sun Feb 09, 2014 9:23 am
by Czarek
Hi Marshall,

I'm using branch 1820 revision 1594 from trunk. I get this error when calling cef_initialize():

Code: Select all
[0209/150402:FATAL:content_main_runner.cc(735)] Check failed: base::i18n::InitializeICU().


I have set both "resources_dir_path" and "locales_dir_path" in cef_settings_t. The "icudtl.dat" file is present. I have triple checked it, the paths are valid. I don't know what else to check.

The cefclient example works fine. When I copy "cefclient" executable to the directory where my binaries reside (libcef.so, icudtl.dat, ..) and run it, all works fine too. So no files are missing. Though, my app executable is run from a diffferent directory, but I have rpath set. I've tried changing current working directory to be the same directory in which icudtl.dat resides, but without luck.

Running on Ubuntu 12.04.3 64-bit. The cef binaries were downloaded from cefbuilds.com.

Thanks for help,
Czarek

Re: [trunk] Check failed: base::i18n::InitializeICU()

PostPosted: Sun Feb 09, 2014 10:44 am
by Czarek
It turns out that Chromium looks for the icudtl.dat file in the same directory that executable resides. It does not look for it in the current working directtory. Also the "resources_dir_path" setting is ignored when it comes to icudtl file.

EDIT. I'm having some problems with setting strings in cef_settings_t. So maybe that's the cause, as resources_dir_path wasn't used.

I'm using the same function that sets the string on Win/Linux, so not sure why it doesn't work correctly on Linux. Although, on Windows I'm using branch 1750. On Linux 1820.

Strings are by default UTF-16 on both Linux and Windows? All calls to cef_string_utf8_to_utf16 return "1", so all should be okay, right?

///
// These functions convert between UTF-8, -16, and -32 strings. They are
// potentially slow so unnecessary conversions should be avoided. The best
// possible result will always be written to |output| with the boolean return
// value indicating whether the conversion is 100% valid.
///


When setting "cace_path" string I get segmentation violation. When setting "log_file" there is no segmentation, but the log file is never created.

Is it possible that there are some issues caused by CEF making a global tcmalloc hook?

Re: [trunk] Check failed: base::i18n::InitializeICU()

PostPosted: Sun Feb 09, 2014 6:08 pm
by Czarek
Marshall,

There is something bad going on with trunk branch 1820. I've build branch 1750 and everything is working fine now. Setting cache_path works okay, the same for log_file. In branch 1820 I get segmentation faults when setting cache_path, and setting log_file doesn't work. Also the resources_dir_path setting doesn't work for icudtl.dat.

Re: [trunk] Check failed: base::i18n::InitializeICU()

PostPosted: Sun Feb 09, 2014 6:33 pm
by magreenblatt
Czarek wrote:Marshall,

There is something bad going on with trunk branch 1820. I've build branch 1750 and everything is working fine now. Setting cache_path works okay, the same for log_file. In branch 1820 I get segmentation faults when setting cache_path, and setting log_file doesn't work. Also the resources_dir_path setting doesn't work for icudtl.dat.

Please file a bug. icudtl.dat should use the module directory (same directory that libffmpegsumo.so is loaded from).

Re: [trunk] Check failed: base::i18n::InitializeICU()

PostPosted: Mon Feb 10, 2014 6:24 pm
by Czarek
magreenblatt wrote:Please file a bug. icudtl.dat should use the module directory (same directory that libffmpegsumo.so is loaded from).


Created Issue 1198:
https://code.google.com/p/chromiumembed ... il?id=1198