diff options
Diffstat (limited to 'bitbake/lib')
| -rw-r--r-- | bitbake/lib/bb/persist_data.py | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/bitbake/lib/bb/persist_data.py b/bitbake/lib/bb/persist_data.py index ce84a15825..bcca791edf 100644 --- a/bitbake/lib/bb/persist_data.py +++ b/bitbake/lib/bb/persist_data.py | |||
| @@ -249,4 +249,23 @@ def persist(domain, d): | |||
| 249 | 249 | ||
| 250 | bb.utils.mkdirhier(cachedir) | 250 | bb.utils.mkdirhier(cachedir) |
| 251 | cachefile = os.path.join(cachedir, "bb_persist_data.sqlite3") | 251 | cachefile = os.path.join(cachedir, "bb_persist_data.sqlite3") |
| 252 | return SQLTable(cachefile, domain) | 252 | |
| 253 | try: | ||
| 254 | return SQLTable(cachefile, domain) | ||
| 255 | except sqlite3.OperationalError: | ||
| 256 | # Sqlite fails to open database when its path is too long. | ||
| 257 | # After testing, 504 is the biggest path length that can be opened by | ||
| 258 | # sqlite. | ||
| 259 | # Note: This code is called before sanity.bbclass and its path length | ||
| 260 | # check | ||
| 261 | max_len = 504 | ||
| 262 | if len(cachefile) > max_len: | ||
| 263 | logger.critical("The path of the cache file is too long " | ||
| 264 | "({0} chars > {1}) to be opened by sqlite! " | ||
| 265 | "Your cache file is \"{2}\"".format( | ||
| 266 | len(cachefile), | ||
| 267 | max_len, | ||
| 268 | cachefile)) | ||
| 269 | sys.exit(1) | ||
| 270 | else: | ||
| 271 | raise | ||
