Issue 1:
julia> Pkg.update()
INFO: Updating METADATA...
INFO: Computing changes...
INFO: Installing ArrayViews v0.6.4
INFO: Installing Compat v0.7.7
INFO: Upgrading DataArrays: v0.2.19 => v0.2.20

My update hangs for over 2 hours.

Observed on OS X 10.11, julia 0.4.0, 0.4.1 and release-0.4 HEAD, but not on master.

To reproduce, create an empty v0.4 directory with METADATA and DataArrays v0.2.19 installed, and create a REQUIRE file with "DataArrays" as the only entry.

Backtrace on julia-debug if it's helpful:

* thread #1: tid = 0x64352e, 0x00007fff8d217072 libsystem_kernel.dylib`kevent + 10, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
frame #0: 0x00007fff8d217072 libsystem_kernel.dylib`kevent + 10
frame #1: 0x000000010211e2cc libjulia-debug.dylib`uv__io_poll(loop=0x0000000102d75338, timeout=<unavailable>) + 684 at kqueue.c:130 [opt]
frame #2: 0x000000010210e838 libjulia-debug.dylib`uv_run(loop=0x0000000102d75338, mode=UV_RUN_ONCE) + 360 at core.c:294 [opt]
* frame #3: 0x00000001020cdf31 libjulia-debug.dylib`jl_run_once(loop=0x0000000102d75338) + 65 at jl_uv.c:116
frame #4: 0x00000001035dd511 sys-debug.dylib`julia_process_events_17564 + 225 at stream.jl:713 [opt]
frame #5: 0x00000001035dd1ba sys-debug.dylib`julia_wait_17562 + 154 at task.jl:360 [opt]
frame #6: 0x00000001035dcfa6 sys-debug.dylib`julia_wait_17560 + 454 at task.jl:286 [opt]
frame #7: 0x0000000101fb71f0 libjulia-debug.dylib`jl_apply(f=0x0000000107621630, args=0x00007fff5dc63090, nargs=1) + 64 at julia.h:1325
frame #8: 0x0000000101fb9cf1 libjulia-debug.dylib`jl_apply_generic(F=0x0000000107621290, args=0x00007fff5dc63090, nargs=1) + 529 at gf.c:1684
frame #9: 0x0000000103623d88 sys-debug.dylib`julia_stream_wait_19296 + 488 at stream.jl:60 [opt]
frame #10: 0x0000000103623b73 sys-debug.dylib`julia_wait_19295 + 115 at process.jl:655 [opt]
frame #11: 0x0000000306851f34
frame #12: 0x0000000306851e43
frame #13: 0x0000000101fb71f0 libjulia-debug.dylib`jl_apply(f=0x0000000108861550, args=0x00007fff5dc63220, nargs=1) + 64 at julia.h:1325
frame #14: 0x0000000101fb9cf1 libjulia-debug.dylib`jl_apply_generic(F=0x0000000106b4e690, args=0x00007fff5dc63220, nargs=1) + 529 at gf.c:1684
frame #15: 0x0000000306855265
frame #16: 0x0000000101fb71f0 libjulia-debug.dylib`jl_apply(f=0x00000001084d55b0, args=0x00007fff5dc63378, nargs=1) + 64 at julia.h:1325
frame #17: 0x0000000101fb9cf1 libjulia-debug.dylib`jl_apply_generic(F=0x0000000106d6c150, args=0x00007fff5dc63378, nargs=1) + 529 at gf.c:1684
frame #18: 0x0000000306854496
frame #19: 0x0000000306854127
frame #20: 0x0000000101fc7f50 libjulia-debug.dylib`jl_apply(f=0x0000000108544ab0, args=0x00007fff5dc63538, nargs=2) + 64 at julia.h:1325
frame #21: 0x0000000101fc8583 libjulia-debug.dylib`jl_f_kwcall(F=0x0000000000000000, args=0x00007fff5dc63538, nargs=2) + 931 at builtins.c:545
frame #22: 0x0000000306893484
frame #23: 0x0000000306896efe
frame #24: 0x0000000306896e07
frame #25: 0x0000000101fc7f50 libjulia-debug.dylib`jl_apply(f=0x00000001087d7110, args=0x00007fff5dc63d40, nargs=2) + 64 at julia.h:1325
frame #26: 0x0000000101fca9cb libjulia-debug.dylib`jl_trampoline(F=0x00000001087d7110, args=0x00007fff5dc63d40, nargs=2) + 235 at builtins.c:1037
frame #27: 0x0000000101fb71f0 libjulia-debug.dylib`jl_apply(f=0x00000001087d7110, args=0x00007fff5dc63d40, nargs=2) + 64 at julia.h:1325
frame #28: 0x0000000101fb9e10 libjulia-debug.dylib`jl_apply_generic(F=0x00000001058746d0, args=0x00007fff5dc63d40, nargs=2) + 816 at gf.c:1708
frame #29: 0x00000001036317e2 sys-debug.dylib`julia_resolve_19574 + 6738 at entry.jl:459 [opt]
frame #30: 0x000000010362a7ee sys-debug.dylib`julia_update_19438 + 5166 at entry.jl:313 [opt]
frame #31: 0x0000000101fc7f50 libjulia-debug.dylib`jl_apply(f=0x0000000106393830, args=0x00007fff5dc64240, nargs=1) + 64 at julia.h:1325
frame #32: 0x0000000101fca9cb libjulia-debug.dylib`jl_trampoline(F=0x0000000106393830, args=0x00007fff5dc64240, nargs=1) + 235 at builtins.c:1037
frame #33: 0x0000000101fb71f0 libjulia-debug.dylib`jl_apply(f=0x0000000106393830, args=0x00007fff5dc64240, nargs=1) + 64 at julia.h:1325
frame #34: 0x0000000101fb9cf1 libjulia-debug.dylib`jl_apply_generic(F=0x0000000106393790, args=0x00007fff5dc64240, nargs=1) + 529 at gf.c:1684
frame #35: 0x0000000101fc7f50 libjulia-debug.dylib`jl_apply(f=0x0000000106393790, args=0x00007fff5dc64240, nargs=1) + 64 at julia.h:1325
frame #36: 0x0000000101fc7dd1 libjulia-debug.dylib`jl_f_apply(F=0x0000000000000000, args=0x00007fff5dc64428, nargs=2) + 2817 at builtins.c:497
frame #37: 0x000000030684ac37
frame #38: 0x0000000101fc7f50 libjulia-debug.dylib`jl_apply(f=0x00000001086d4df0, args=0x0000000000000000, nargs=0) + 64 at julia.h:1325
frame #39: 0x0000000101fca9cb libjulia-debug.dylib`jl_trampoline(F=0x00000001086d4df0, args=0x0000000000000000, nargs=0) + 235 at builtins.c:1037
frame #40: 0x000000030684a0bb
frame #41: 0x0000000101fc7f50 libjulia-debug.dylib`jl_apply(f=0x00000001086d4e30, args=0x00007fff5dc647f8, nargs=2) + 64 at julia.h:1325
frame #42: 0x0000000101fca9cb libjulia-debug.dylib`jl_trampoline(F=0x00000001086d4e30, args=0x00007fff5dc647f8, nargs=2) + 235 at builtins.c:1037
frame #43: 0x0000000101fb71f0 libjulia-debug.dylib`jl_apply(f=0x00000001086d4e30, args=0x00007fff5dc647f8, nargs=2) + 64 at julia.h:1325
frame #44: 0x0000000101fb9e10 libjulia-debug.dylib`jl_apply_generic(F=0x0000000107338530, args=0x00007fff5dc647f8, nargs=2) + 816 at gf.c:1708
frame #45: 0x00000003068475a6
frame #46: 0x0000000101fc7f50 libjulia-debug.dylib`jl_apply(f=0x00000001086dd970, args=0x00007fff5dc649e8, nargs=3) + 64 at julia.h:1325
frame #47: 0x0000000101fca9cb libjulia-debug.dylib`jl_trampoline(F=0x00000001086dd970, args=0x00007fff5dc649e8, nargs=3) + 235 at builtins.c:1037
frame #48: 0x0000000101fb71f0 libjulia-debug.dylib`jl_apply(f=0x00000001086dd970, args=0x00007fff5dc649e8, nargs=3) + 64 at julia.h:1325
frame #49: 0x0000000101fb9e10 libjulia-debug.dylib`jl_apply_generic(F=0x00000001061bb8f0, args=0x00007fff5dc649e8, nargs=3) + 816 at gf.c:1708
frame #50: 0x00000001036600a7 sys-debug.dylib`julia_update_20232 + 215 at pkg.jl:45 [opt]
frame #51: 0x00000001036600d9 sys-debug.dylib`jlcall_update_20232 + 9
frame #52: 0x0000000101fc7f50 libjulia-debug.dylib`jl_apply(f=0x00000001063c1d10, args=0x00007fff5dc64c18, nargs=0) + 64 at julia.h:1325
frame #53: 0x0000000101fca9cb libjulia-debug.dylib`jl_trampoline(F=0x00000001063c1d10, args=0x00007fff5dc64c18, nargs=0) + 235 at builtins.c:1037
frame #54: 0x0000000101fb71f0 libjulia-debug.dylib`jl_apply(f=0x00000001063c1d10, args=0x00007fff5dc64c18, nargs=0) + 64 at julia.h:1325
frame #55: 0x0000000101fb9cf1 libjulia-debug.dylib`jl_apply_generic(F=0x00000001063c1cb0, args=0x00007fff5dc64c18, nargs=0) + 529 at gf.c:1684
frame #56: 0x00000001020aba10 libjulia-debug.dylib`jl_apply(f=0x00000001063c1cb0, args=0x00007fff5dc64c18, nargs=0) + 64 at julia.h:1325
frame #57: 0x00000001020ab303 libjulia-debug.dylib`do_call(f=0x00000001063c1cb0, args=0x00000001095ae708, nargs=0, eval0=0x0000000000000000, locals=0x0000000000000000, nl=0, ngensym=0) + 371 at interpreter.c:65
frame #58: 0x00000001020a8325 libjulia-debug.dylib`eval(e=0x0000000108701490, locals=0x0000000000000000, nl=0, ngensym=0) + 2853 at interpreter.c:213
frame #59: 0x00000001020a77cd libjulia-debug.dylib`jl_interpret_toplevel_expr(e=0x0000000108701490) + 45 at interpreter.c:27
frame #60: 0x00000001020ca86b libjulia-debug.dylib`jl_toplevel_eval_flex(e=0x00000001087004d0, fast=1) + 2347 at toplevel.c:527
frame #61: 0x00000001020cb278 libjulia-debug.dylib`jl_toplevel_eval(v=0x00000001087004d0) + 40 at toplevel.c:550
frame #62: 0x0000000101fc89ee libjulia-debug.dylib`jl_toplevel_eval_in(m=0x00000001057f0010, ex=0x00000001087004d0, delay_warn=0) + 782 at builtins.c:579
frame #63: 0x0000000101fc8cb8 libjulia-debug.dylib`jl_f_top_eval(F=0x0000000000000000, args=0x00007fff5dc65508, nargs=2) + 248 at builtins.c:610
frame #64: 0x000000030684687a
frame #65: 0x00000003068463c7
frame #66: 0x0000000101fc7f50 libjulia-debug.dylib`jl_apply(f=0x0000000108700870, args=0x00007fff5dc65808, nargs=2) + 64 at julia.h:1325
frame #67: 0x0000000101fca9cb libjulia-debug.dylib`jl_trampoline(F=0x0000000108700870, args=0x00007fff5dc65808, nargs=2) + 235 at builtins.c:1037
frame #68: 0x0000000101fb71f0 libjulia-debug.dylib`jl_apply(f=0x0000000108700870, args=0x00007fff5dc65808, nargs=2) + 64 at julia.h:1325
frame #69: 0x0000000101fb9e10 libjulia-debug.dylib`jl_apply_generic(F=0x00000001061b8f30, args=0x00007fff5dc65808, nargs=2) + 816 at gf.c:1708
frame #70: 0x00000003068411cc
frame #71: 0x0000000101fc7f50 libjulia-debug.dylib`jl_apply(f=0x0000000107f2da70, args=0x0000000000000000, nargs=0) + 64 at julia.h:1325
frame #72: 0x0000000101fca9cb libjulia-debug.dylib`jl_trampoline(F=0x0000000107f2da70, args=0x0000000000000000, nargs=0) + 235 at builtins.c:1037
frame #73: 0x00000001020b7fc0 libjulia-debug.dylib`jl_apply(f=0x0000000107f2da70, args=0x0000000000000000, nargs=0) + 64 at julia.h:1325
frame #74: 0x00000001020b7f6f libjulia-debug.dylib`start_task + 47 at task.c:240

Issue 2:
I find that Pkg.udpate() stalls almost every time when updating a package to a new version. This is how a typical output looks like:

julia> Pkg.update()
INFO: Updating METADATA...
INFO: Updating cache of Gadfly...
INFO: Updating cache of Clang...
INFO: Updating cache of Compose...
INFO: Updating cache of Clang...
INFO: Updating SmallInts...
INFO: Updating MPI...
INFO: Updating FloatHigher...
INFO: Updating Hwloc...
INFO: Updating JLD...
INFO: Updating AutoBenchmark...
INFO: Updating PETSc...
INFO: Updating ClusterManagers...
INFO: Updating HDF5...
INFO: Updating Variants...
INFO: Updating HelloWorld...
INFO: Updating WideInts...
INFO: Updating Elemental...
INFO: Updating Persist...
INFO: Computing changes...
INFO: Upgrading Compose: v0.4.0 => v0.4.1
julia> Pkg.update()
INFO: Updating METADATA...
INFO: Updating cache of Gadfly...
INFO: Updating cache of Clang...
INFO: Updating cache of Compose...
INFO: Updating cache of Clang...
INFO: Updating SmallInts...
INFO: Updating MPI...
INFO: Updating FloatHigher...
INFO: Updating Hwloc...
INFO: Updating JLD...
INFO: Updating AutoBenchmark...
INFO: Updating PETSc...
INFO: Updating ClusterManagers...
INFO: Updating HDF5...
INFO: Updating Variants...
INFO: Updating HelloWorld...
INFO: Updating WideInts...
INFO: Updating Elemental...
INFO: Updating Persist...
INFO: Computing changes...
INFO: Upgrading Compose: v0.4.0 => v0.4.1

Here, nothing happens any more. To remedy this, I can e.g. abort, and then manually git fetch this repository. Alternatively, I can Pkg.checkout("Compose"); Pkg.free("Compose"). Both usually remedy the hang.

julia> versioninfo()
Julia Version 0.4.3-pre+8
Commit 8402319* (2016-01-09 00:36 UTC)
Platform Info:
System: Darwin (x86_64-apple-darwin15.2.0)
CPU: Intel(R) Core(TM) i7-4980HQ CPU @ 2.80GHz
WORD_SIZE: 64
BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Haswell)
LAPACK: libopenblas64_
LIBM: libopenlibm
LLVM: libLLVM-3.3